summaryrefslogtreecommitdiff
path: root/source3/libmsrpc/libmsrpc_internal.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/libmsrpc/libmsrpc_internal.c')
-rw-r--r--source3/libmsrpc/libmsrpc_internal.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/source3/libmsrpc/libmsrpc_internal.c b/source3/libmsrpc/libmsrpc_internal.c
index a86cde178d..64e6332e80 100644
--- a/source3/libmsrpc/libmsrpc_internal.c
+++ b/source3/libmsrpc/libmsrpc_internal.c
@@ -264,13 +264,16 @@ REG_VALUE_DATA *cac_MakeRegValueData( TALLOC_CTX * mem_ctx, uint32 data_type,
data->reg_binary.data_length = size;
- data->reg_binary.data =
- ( uint8 * ) TALLOC_MEMDUP( mem_ctx, buf.buffer,
- size );
- if ( !data->reg_binary.data ) {
- TALLOC_FREE( data );
- errno = ENOMEM;
- data = NULL;
+ if (size) {
+ data->reg_binary.data =
+ ( uint8 * ) TALLOC_MEMDUP( mem_ctx, buf.buffer, size );
+ if ( !data->reg_binary.data ) {
+ TALLOC_FREE( data );
+ errno = ENOMEM;
+ data = NULL;
+ }
+ } else {
+ data->reg_binary.data = NULL;
}
break;