lkml.org 
[lkml]   [2001]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] max_fds race in select().
    Date
    We can end up with the user getting more fds tban they asked for...

    Unlikely, but possible,
    Rusty.
    --- linux-2.4.4-official/fs/select.c Thu Feb 22 14:25:36 2001
    +++ working-2.4.4-rcu/fs/select.c Fri May 4 14:06:39 2001
    @@ -260,7 +260,7 @@
    fd_set_bits fds;
    char *bits;
    long timeout;
    - int ret, size;
    + int ret, size, max_fdset;

    timeout = MAX_SCHEDULE_TIMEOUT;
    if (tvp) {
    @@ -285,8 +285,10 @@
    if (n < 0)
    goto out_nofds;

    - if (n > current->files->max_fdset)
    - n = current->files->max_fdset;
    + /* max_fdset can increase, so grab it once to avoid race */
    + max_fdset = current->files->max_fdset;
    + if (n > max_fdset)
    + n = max_fdset;

    /*
    * We need 6 bitmaps (in/out/ex for both incoming and outgoing),
    --
    Premature optmztion is rt of all evl. --DK
    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 12:52    [W:0.024 / U:0.820 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site