s3:registry: add new mode to regdb_store_subkey_list() for handing in NULL parent key
authorMichael Adam <obnox@samba.org>
Mon, 4 Jul 2011 11:06:20 +0000 (13:06 +0200)
committerMichael Adam <obnox@samba.org>
Mon, 4 Jul 2011 18:02:08 +0000 (20:02 +0200)
Standard behaviour is to concatenate parent and key path (parent\key).
This new mode allows for storing subkey lists for base keys using a NULL
parent argument.

Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>

source3/registry/reg_backend_db.c

index 34c25d83576f619056a4a2bb3d670a29767fd751..efb2b46b88713d05202d27097b7c7dda81294597 100644 (file)
@@ -858,6 +858,8 @@ done:
  * Utility function to store a new empty list of
  * subkeys of given key specified as parent and subkey name
  * (thereby creating the key).
+ * If the parent keyname is NULL, then the "subkey" is
+ * interpreted as a base key.
  * If the subkey list does already exist, it is not modified.
  *
  * Must be called from within a transaction.
@@ -870,7 +872,11 @@ static WERROR regdb_store_subkey_list(struct db_context *db, const char *parent,
        struct regsubkey_ctr *subkeys = NULL;
        TALLOC_CTX *frame = talloc_stackframe();
 
-       path = talloc_asprintf(frame, "%s\\%s", parent, key);
+       if (parent == NULL) {
+               path = talloc_strdup(frame, key);
+       } else {
+               path = talloc_asprintf(frame, "%s\\%s", parent, key);
+       }
        if (!path) {
                werr = WERR_NOMEM;
                goto done;