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:
parent
5e0d86c407
commit
87222d3f11
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user