Fix race condition in alarm lock processing noticed by Richard Sharpe <realrichardsha...
authorJeremy Allison <jra@samba.org>
Thu, 8 Jan 2009 18:36:10 +0000 (10:36 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 8 Jan 2009 18:36:10 +0000 (10:36 -0800)
commitc07ea13d3077f73ad6cb28e9689b120bca6eac74
treede6343a083435071db1a70a8ad8145167a4a57f7
parent154e08f275f1d20f0c8bdf1c876dc1ec780b1db2
Fix race condition in alarm lock processing noticed by Richard Sharpe <realrichardsharpe@gmail.com>.
"It seems to me that if the lock is already held by another process when we
enter this code, there is a race between the timeout and the granting. If
the lock is subsequently granted, the process releasing the lock will signal
the wait variable (or whatever) and our process will be scheduled. However,
if the timeout occurs before we are scheduled, the timeout will be delivered
first.

We will have the lock but will forget we have the lock, and never release
it."
Jeremy.
source3/lib/util_tdb.c