From ad2e1757e7368fd47cada55b5004fec569b18768 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Wed, 9 Jul 2008 10:39:00 +0200 Subject: registry: improve logic for deleting value records in regdb_store_keys(). Don't ignore all errors from dbwrap_delete_bystring() but only NT_STATUS_NOT_FOUND. Michael (This used to be commit d7ec9b2d52d1eddd98eba222f723fb6cdff4541f) --- source3/registry/reg_backend_db.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source3/registry/reg_backend_db.c') diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c index b1e3e2b5a3..3f06fba5c2 100644 --- a/source3/registry/reg_backend_db.c +++ b/source3/registry/reg_backend_db.c @@ -701,8 +701,15 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr) if (!path) { goto cancel; } - /* Ignore errors here, we might have no values around */ - dbwrap_delete_bystring(regdb, path); + status = dbwrap_delete_bystring(regdb, path); + /* Don't fail if there are no values around. */ + 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); /* (c) Delete the list of subkeys of this key */ -- cgit