[SCM] Samba Shared Repository - branch master updated

Jelmer Vernooij jelmer at samba.org
Tue Jan 19 14:53:23 MST 2010


The branch, master has been updated
       via  8067bf6... Fix unintentional free of the last value when adding a new value to a key.
      from  f8314c2... s4-smbtorture: remove unneeded ncaclrpc dir setup from RPC-SPOOLSS-NOTIFY.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8067bf629c4c4a2a4c1e66af41fc387448d468c6
Author: Wilco Baan Hofman <wilco at baanhofman.nl>
Date:   Tue Jan 19 12:06:01 2010 +0100

    Fix unintentional free of the last value when adding a new value to a key.
    
    Signed-off-by: Jelmer Vernooij <jelmer at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source4/lib/registry/regf.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/lib/registry/regf.c b/source4/lib/registry/regf.c
index a7fed42..a96c7db 100644
--- a/source4/lib/registry/regf.c
+++ b/source4/lib/registry/regf.c
@@ -1791,11 +1791,9 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
 				break;
 			}
 		}
-		/* Free data, if any */
-		if (!(vk.data_length & 0x80000000)) {
-			hbin_free(regf, vk.data_offset);
-		}
 	}
+
+	/* If it's new, create the vk struct, if it's old, free the old data. */
 	if (old_vk_offset == -1) {
 		vk.header = "vk";
 		vk.name_length = strlen(name);
@@ -1806,7 +1804,13 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
 			vk.data_name = NULL;
 			vk.flag = 0;
 		}
+	} else {
+		/* Free data, if any */
+		if (!(vk.data_length & 0x80000000)) {
+			hbin_free(regf, vk.data_offset);
+		}
 	}
+
 	/* Set the type and data */
 	vk.data_length = data.length;
 	vk.data_type = type;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list