svn commit: samba r4116 - in branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc: .

tridge at samba.org tridge at samba.org
Thu Dec 9 12:42:29 GMT 2004


Author: tridge
Date: 2004-12-09 12:42:29 +0000 (Thu, 09 Dec 2004)
New Revision: 4116

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4116

Log:
fixed compilation of EnumValue code in winreg rpc backend

thanks to volker for pointing this out

Modified:
   branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc/reg_backend_rpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc/reg_backend_rpc.c
===================================================================
--- branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc/reg_backend_rpc.c	2004-12-09 10:33:21 UTC (rev 4115)
+++ branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc/reg_backend_rpc.c	2004-12-09 12:42:29 UTC (rev 4116)
@@ -226,9 +226,10 @@
 	struct rpc_key_data *mykeydata = parent->backend_data;
 	WERROR error;
 	struct winreg_EnumValue r;
-	uint32 type, len1, len2 = 0;
-	struct EnumValueIn buf_name, buf_val;
+	uint32 type, len1, zero = 0;
 	NTSTATUS status;
+	uint8_t buf8;
+	uint16_t buf16;
 	
 	if(mykeydata->num_values == -1) {
 		error = rpc_query_key(parent);
@@ -239,19 +240,13 @@
 	
 	r.in.handle = &mykeydata->pol;
 	r.in.enum_index = n;
-	r.in.name_in.len = 0;
-	r.in.name_in.max_len = mykeydata->max_valnamelen * 2;
-	buf_name.max_len = mykeydata->max_valnamelen;
-	buf_name.offset = 0;
-	buf_name.len = 0;
-	r.in.name_in.buffer = &buf_name;
+	r.in.name_in.length = 0;
+	r.in.name_in.size = mykeydata->max_valnamelen * 2;
+	r.in.name_in.name = &buf16;
 	r.in.type = &type;
-	buf_val.max_len = mykeydata->max_valdatalen;
-	buf_val.offset = 0;
-	buf_val.len = 0;
-	r.in.value_in = &buf_val;
-	r.in.value_len1 = &len1;
-	r.in.value_len2 = &len2;
+	r.in.value = &buf8;
+	r.in.length = &zero;
+	r.in.size = &len1;
 	r.out.type = &type;
 
 	
@@ -261,13 +256,14 @@
 		return WERR_GENERAL_FAILURE;
 	}
 	
-	if(NT_STATUS_IS_OK(status) && W_ERROR_IS_OK(r.out.result)) {
+	if(NT_STATUS_IS_OK(status) && 
+	   W_ERROR_IS_OK(r.out.result) && r.out.length) {
 		*value = talloc_p(mem_ctx, struct registry_value);
 		(*value)->parent = parent;
 		(*value)->name = talloc_strdup(mem_ctx, r.out.name_out.name);
 		(*value)->data_type = type;
-		(*value)->data_len = r.out.value_out->buffer.length;
-		(*value)->data_blk = talloc_memdup(mem_ctx, r.out.value_out->buffer.data, r.out.value_out->buffer.length);
+		(*value)->data_len = *r.out.length;
+		(*value)->data_blk = talloc_memdup(mem_ctx, r.out.value, *r.out.length);
 		return WERR_OK;
 	}
 	



More information about the samba-cvs mailing list