mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
Fix unintentional free of the last value when adding a new value to a key.
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
This commit is contained in:
parent
f8314c27b3
commit
8067bf629c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user