lkml.org 
[lkml]   [2009]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    SubjectRe: epoll_create(0) becomes not to fail (Re: issue with epoll system call)
    From
    hi,

    I have created a patch for epoll_create syscall as shown below. Plz
    have a check and
    get back to me.

    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@gmail.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@gmail.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@vger.kernel.org
    > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
    > > Please read the FAQ at  http://www.tux.org/lkml/
    > >
    [unhandled content-type:application/octet-stream]
    \
     
     \ /
      Last update: 2009-05-12 08:57    [W:0.046 / U:59.408 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site