Re: DoS with POSIX file locks?

Miklos Szeredi
2006-03-22T20:20:20Z

> You'd have to ensure that none of the threads involved are able to grab
> new posix locks in the period between the unsharing of current->files to
> the moment when current->files->owner is swapped.
>
> If not, one thread could in theory open a new file and grab a lock that
> can never be unlocked because its lockowner gets stolen away from it by
> another execing thread.

This race is already there. Header comment on steal_locks() documents
it.

The patch does open this race window much wider, because pending locks
are also transfered to the task doing the exec. The original
steal_locks() only stole already held locks. But I don't think this
fundamentaly changes things. It just shows more clearly how ugly the
current semantics are.

Miklos