summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2008-07-09 10:40:39 +0200
committerMichael Adam <obnox@samba.org>2008-07-09 10:43:25 +0200
commitf587e0310c802109f2647fc8637db4b01c6a49d3 (patch)
tree4ab066bfc961140203cf8a650fad539f0382f251
parentad2e1757e7368fd47cada55b5004fec569b18768 (diff)
downloadsamba-f587e0310c802109f2647fc8637db4b01c6a49d3.tar.gz
samba-f587e0310c802109f2647fc8637db4b01c6a49d3.tar.bz2
samba-f587e0310c802109f2647fc8637db4b01c6a49d3.zip
registry: fix logic in deleting subkeys record in regdb_fetch_keys().
Don't cancel on NT_STATUS_NOT_FOUND error from dbwrap_delete_bystring(). So deletion of an "incomlete" registry key, i.e. one with an entry in the list of subkeys of its parent key but not a subkey list of its own, works again. Michael (This used to be commit 75be2116ac2589aaf69038a4115197f40e4b16a5)
-rw-r--r--source3/registry/reg_backend_db.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c
index 3f06fba5c2..e0a7277a5d 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -723,8 +723,12 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr)
goto cancel;
}
status = dbwrap_delete_bystring(regdb, path);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(1, ("Deleting %s failed\n", path));
+ /* Don't fail if the subkey record was not found. */
+ if (!NT_STATUS_IS_OK(status) &&
+ !NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND))
+ {
+ DEBUG(1, ("Deleting %s failed: %s\n", path,
+ nt_errstr(status)));
goto cancel;
}
TALLOC_FREE(path);