reg_backend_dir:
- value support
+
+reg_backend_w95.c:
+ - write support
reg_backend_nt4:
- write support
if ( !val )
return;
+ val->ref--;
+ if(val->ref) return;
+
if(val->handle->functions->free_val_backend_data)
val->handle->functions->free_val_backend_data(val);
switch (reg_val_type(v)) {
case REG_SZ:
/* FIXME: Convert to ascii */
- return strdup(reg_val_data_blk(v));
+ return strndup(reg_val_data_blk(v), reg_val_size(v));
case REG_EXPAND_SZ:
- return strdup(reg_val_data_blk(v));
+ return strndup(reg_val_data_blk(v), reg_val_size(v));
case REG_BINARY:
ret = malloc(reg_val_size(v) * 3 + 2);
RGDB_KEY *rgdb_key;
char *name;
rgdb_key = LOCN_RGDB_KEY(creg, child->id.rgdb, child->id.id);
+ if(!rgdb_key) {
+ DEBUG(0, ("Can't find %d,%d in RGDB table!\n", child->id.rgdb, child->id.id));
+ return WERR_FOOBAR;
+ }
name = strndup((char *)rgdb_key + sizeof(RGDB_KEY), rgdb_key->name_len);
*key = reg_key_new_rel(name, parent, child);
SAFE_FREE(name);