[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.1.10.0905121203250.29869@makko.or.mcafeemobile.com>
Date: Tue, 12 May 2009 12:03:54 -0700 (PDT)
From: Davide Libenzi <davidel@...ilserver.org>
To: rohit verma <rohit.170309@...il.com>
cc: Hiroyuki.Mach@...il.com,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: epoll_create(0) becomes not to fail (Re: issue with epoll system
call)
On Tue, 12 May 2009, rohit verma wrote:
> hi,
>
> I have created a patch for epoll_create syscall as shown below. Plz
> have a check and
> get back to me.
Never mind. I'll submit myself ..
>
> diff a/fs/eventpoll.c b/fs/eventpoll.c
>
>
>
> --- eventpoll_orig.c 2009-05-12 12:07:27.000000000 +0530
> +++ eventpoll.c 2009-05-12 12:10:14.000000000 +0530
> @@ -1136,7 +1136,7 @@
> SYSCALL_DEFINE1(epoll_create, int, size)
> {
> - if (size < 0)
> + if (size <= 0)
> return -EINVAL;
> return sys_epoll_create1(0);
>
>
>
> Since there might be some formatting problems, i'm also attaching the
> patch in this
> mail.
>
> Regards,
> Rohit
>
>
>
> On Fri, May 8, 2009 at 1:19 PM, Hiroyuki Machida
> <Hiroyuki.Mach@...il.com> wrote:
> >
> > Hi Verma,
> >
> > I think your point is right. but descriptions looks not straight forward.
> > And title of the message is very confusable.
> > I think descriptions like following would be easy to understand, and
> > you should attach a your signed-off patch to fix the bug.
> >
> >
> > Thanks,
> > Hiro
> >
> > ----
> >
> > The following patch changed behavior of epoll_create(0);
> >
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9fe5ad9c8cef9ad5873d8ee55d1cf00d9b607df0;hp=e38b36f325153eaadd1c2a7abc5762079233e540
> >
> >
> > Before applying the patch,
> > sys_epoll_create2(int size, int flags)
> > returned -EINVAL, with size=0;
> >
> > But, if-condtion which is introduced in sys_epoll_create() by this patch,
> > looks to fail to consider case of size==0 as follows;
> >
> > asmlinkage long sys_epoll_create(int size)
> > {
> > - return sys_epoll_create2(size, 0);
> > + if (size < 0)
> > + return -EINVAL;
> > +
> > + return sys_epoll_create1(0);
> > }
> >
> >
> > ---
> > Hiroyuki Machida
> >
> >
> >
> > On Thu, May 7, 2009 at 4:10 PM, rohit verma <rohit.170309@...il.com> wrote:
> > > hi all,
> > >
> > > The man pages of epoll_create says - "Since Linux 2.6.8, the size
> > > argument is unused. (The kernel dynamically sizes the required data
> > > structures without needing this initial hint.)" .
> > >
> > > Also, it says that the syscall returns EINVAL , when size is not
> > > positive. (i.e For, any value greater than 0, the kernel dynamically
> > > sizes the required data stuctures). When size is zero or less than
> > > zero, it has to return with error as EINVAL.
> > >
> > > the link: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9fe5ad9c8cef9ad5873d8ee55d1cf00d9b607df0;hp=e38b36f325153eaadd1c2a7abc5762079233e540
> > >
> > > shows the latest patch of the epoll syscall. here , the syscall says:
> > >
> > > asmlinkage long sys_epoll_create(int size)
> > > {
> > > - return sys_epoll_create2(size,0);
> > > + if (size < 0)
> > > + return -EINVAL;
> > > +
> > > +return sys_epoll_create1(0);
> > > }
> > >
> > > So if size = 0, it returns success which might not be the expected
> > > result. So i feel that the condition check should be
> > > " if (size <= 0) ". could u please check on this and reply me..
> > >
> > > Thank you,
> > >
> > > Regards,
> > > rohit
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > > the body of a message to majordomo@...r.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > > Please read the FAQ at http://www.tux.org/lkml/
> > >
>
- Davide
Powered by blists - more mailing lists