From ac42cd59f27de7d753fafd12b4c667073b8758c1 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 5 Aug 2005 00:58:31 +0000 Subject: r9086: * fix invalid read in parse_spoolss when writing a devmode to the wire * fix dup_a_regval() when size is 0 * ensure we pass a pstring to unlink_internals (fixes delete_driver code) (This used to be commit 353e63ff421c564a1b7c7cfe95982f31c871a227) --- source3/registry/reg_objects.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source3/registry') diff --git a/source3/registry/reg_objects.c b/source3/registry/reg_objects.c index d6482e698b..b5753fc688 100644 --- a/source3/registry/reg_objects.c +++ b/source3/registry/reg_objects.c @@ -194,13 +194,18 @@ REGISTRY_VALUE* dup_registry_value( REGISTRY_VALUE *val ) /* copy all the non-pointer initial data */ memcpy( copy, val, sizeof(REGISTRY_VALUE) ); - if ( val->data_p ) + + copy->size = 0; + copy->data_p = NULL; + + if ( val->data_p && val->size ) { if ( !(copy->data_p = memdup( val->data_p, val->size )) ) { DEBUG(0,("dup_registry_value: memdup() failed for [%d] bytes!\n", val->size)); SAFE_FREE( copy ); } + copy->size = val->size; } return copy; -- cgit