1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-04 16:58:42 +03:00

Fix init_registry_data for subkeyless top-level keys.

On a fresh install with no existing registry.tdb, make sure we are able to
create our initial top-level entries.

Michael, Volker, please check.

Guenther
(This used to be commit 956bc602062825493e1c357e2388fee1e5514b50)
This commit is contained in:
Günther Deschner 2008-03-01 00:32:36 +01:00
parent 5e0d86c407
commit 87222d3f11

View File

@ -454,7 +454,8 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr)
regdb_fetch_keys(key, old_subkeys);
if (ctr->num_subkeys == old_subkeys->num_subkeys) {
if ((ctr->num_subkeys && old_subkeys->num_subkeys) &&
(ctr->num_subkeys == old_subkeys->num_subkeys)) {
for (i = 0; i<ctr->num_subkeys; i++) {
if (strcmp(ctr->subkeys[i],
@ -550,6 +551,22 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr)
/* now create records for any subkeys that don't already exist */
num_subkeys = regsubkey_ctr_numkeys(ctr);
if (num_subkeys == 0) {
if (!(subkeys = TALLOC_ZERO_P(ctr, REGSUBKEY_CTR)) ) {
DEBUG(0,("regdb_store_keys: talloc() failure!\n"));
goto fail;
}
if (!regdb_store_keys_internal(key, subkeys)) {
DEBUG(0,("regdb_store_keys: Failed to store "
"new record for key [%s]\n", key));
goto fail;
}
TALLOC_FREE(subkeys);
}
for (i=0; i<num_subkeys; i++) {
path = talloc_asprintf(ctx, "%s/%s",
key,