s3:registry: eliminate race condition in creating/scanning sorted subkeys
authorMichael Adam <obnox@samba.org>
Mon, 8 Feb 2010 10:01:47 +0000 (11:01 +0100)
committerKarolin Seeger <kseeger@samba.org>
Thu, 1 Apr 2010 07:39:19 +0000 (09:39 +0200)
commit506caa5b9132b6fd20121ac47695be7bada89a2d
treed6bc00236cec791eae8090082d72faff6fdcd99e
parent879d21a0db3066492a6b7830ada46623c5cd1d8b
s3:registry: eliminate race condition in creating/scanning sorted subkeys

Called, from key_exists, scan_sorted_subkeys re-creates the sorted
subkeys record of the given key and then searches through it.
The race is that between creation and parsing of the sorted subkey
record, another process that stores some other subkey of the same
parent key will delete the sorted subkey record, resulting in an
WERR_BADFILE of an operation that should actually succeed.

This patch fixes the issue by wrapping the creation and parsing
into a transaction.

Michael
(cherry picked from commit a752bbd10d661ebc93b8d51bd583eb62eb00ad18)

Fix bug #7314 (registry: creation of sorted subkey record is racy (not atomic)).
(cherry picked from commit 06d1aeb7b686b8b929cf9bff48aedc9dbb88b7c3)
source3/registry/reg_backend_db.c