[lkml]   [2003]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] 2.4: Fix steal_locks race
    On Sat, Aug 09, 2003 at 05:13:52AM +0200, Andreas Gruenbacher wrote:
    > On Sat, 9 Aug 2003, Herbert Xu wrote:
    > > On Sat, Aug 09, 2003 at 04:04:53AM +0200, Andreas Gruenbacher wrote:
    > > >
    > > > > My patch is buggy too. If a file is closed by another clone between
    > > > > the two steal_locks calls the lock will again be lost. Fortunately
    > > > > this much harder to trigger than the previous bug.
    > > >
    > > > I think this is not a strict bug---this scenario is not covered by POSIX
    > > > in the first place. Unless lock stealing is done atomically with
    > > > unshare_files there is a window of oportunity between unshare_files() and
    > > > steal_locks(), so locks can still get lost.
    > >
    > > It's not a standard compliance issue. In this case the lock will never
    > > be released and it will eventually lead to a crash when someone reads
    > > /proc/locks.
    > I don't see how this would happen. Could you please elaborate?

    Suppose that A and B share current->files and fd has a POSIX lock on it.

    A B
    exec fails

    The close in B fails to release the lock as it has been stolen by the
    new files structure. The second steal_locks sets the fl_owner back to
    the original files structure which no longer has fd in it and hence can
    never release that lock. The put_files_struct doesn't release the lock
    either since it is now owned by the original file structure.
    Debian GNU/Linux 3.0 is out! ( )
    Email: Herbert Xu ~{PmV>HI~} <>
    Home Page:
    PGP Key:
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:47    [W:0.020 / U:100.820 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site