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:
parent
1ee1b75113
commit
f4caa2d7d4
@ -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
|
||||
**********************************************************************/
|
||||
|
@ -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"));
|
||||
|
Loading…
Reference in New Issue
Block a user