1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

r24998: Add a function regval_compose() to compose a REGISTRY_VALUE from

input data. Use this function in a first step to refactor
the canonicalization code of smbconf_store_values().

Michael
This commit is contained in:
Michael Adam 2007-09-07 14:41:49 +00:00 committed by Gerald (Jerry) Carter
parent 1ee1b75113
commit f4caa2d7d4
2 changed files with 42 additions and 4 deletions

View File

@ -270,6 +270,36 @@ BOOL regval_ctr_key_exists( REGVAL_CTR *ctr, const char *value )
return False;
}
/***********************************************************************
* compose a REGISTRY_VALUE from input data
**********************************************************************/
REGISTRY_VALUE *regval_compose(TALLOC_CTX *ctx, const char *name, uint16 type,
const char *data_p, size_t size)
{
REGISTRY_VALUE *regval = TALLOC_P(ctx, REGISTRY_VALUE);
if (regval == NULL) {
return NULL;
}
fstrcpy(regval->valuename, name);
regval->type = type;
if (size) {
regval->data_p = (uint8 *)TALLOC_MEMDUP(regval, data_p, size);
if (!regval->data_p) {
TALLOC_FREE(regval);
return NULL;
}
} else {
regval->data_p = NULL;
}
regval->size = size;
return regval;
}
/***********************************************************************
Add a new registry value to the array
**********************************************************************/

View File

@ -167,10 +167,18 @@ static BOOL smbconf_store_values( const char *key, REGVAL_CTR *val )
DEBUG(10, ("adding canonicalized parameter to "
"container.\n"));
res = regval_ctr_addvalue(new_val_ctr, canon_valname,
value->type,
(char *)value_data.data,
value_data.length);
theval = regval_compose(mem_ctx, canon_valname,
value->type,
(char *)value_data.data,
value_data.length);
if (theval == NULL) {
DEBUG(10, ("error composing registry value. "
"(no memory?)\n"));
TALLOC_FREE(mem_ctx);
return False;
}
res = regval_ctr_copyvalue(new_val_ctr, theval);
if (res == 0) {
DEBUG(10, ("error calling regval_ctr_addvalue. "
"(no memory?)\n"));