Re: DoS with POSIX file locks?

Miklos Szeredi
2006-03-21T09:45:05Z

> The _only_ sane way to solve it is to decree that you lose your locks if
> you clone(CLONE_FILES) and then call exec(). If there are any
> applications out there that rely on the current behaviour,

Apps using LinuxThreads seem to be candidates:

According to POSIX 1003.1c, a successful `exec*' in one of the
threads should automatically terminate all other threads in the
program. This behavior is not yet implemented in LinuxThreads.
Calling `pthread_kill_other_threads_np' before `exec*' achieves
much of the same behavior, except that if `exec*' ultimately
fails, then all other threads are already killed.

steal_locks() was probably added as a workaround for this case, no?

I wonder how many installations still run LinuxThreads with 2.6 kernels.

Miklos