svn commit: samba r9440 - in branches/SAMBA_4_0/source/librpc/ndr: .

jelmer at samba.org jelmer at samba.org
Sun Aug 21 00:07:52 GMT 2005


Author: jelmer
Date: 2005-08-21 00:07:51 +0000 (Sun, 21 Aug 2005)
New Revision: 9440

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

Log:
Fix bug introduced by new zero-padding code. Caught by the buildfarm.

Modified:
   branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c	2005-08-20 23:36:43 UTC (rev 9439)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c	2005-08-21 00:07:51 UTC (rev 9440)
@@ -641,22 +641,25 @@
 
 NTSTATUS ndr_push_charset(struct ndr_push *ndr, int ndr_flags, const char *var, uint32_t length, uint8_t byte_mul, int chset)
 {
-	ssize_t ret;
-	NDR_PUSH_NEED_BYTES(ndr, byte_mul*length);
+	ssize_t ret, required;
+
+	required = byte_mul * length;
+	
+	NDR_PUSH_NEED_BYTES(ndr, required);
 	ret = convert_string(CH_UNIX, chset, 
 			     var, length,
-			     ndr->data+ndr->offset, byte_mul*length);
+			     ndr->data+ndr->offset, required);
 	if (ret == -1) {
 		return ndr_push_error(ndr, NDR_ERR_CHARCNV, 
 				      "Bad character conversion");
 	}
 
 	/* Make sure the remaining part of the string is filled with zeroes */
-	if (ret < (byte_mul*length)) {
-		memset(ndr->data+ndr->offset+ret, 0, (byte_mul*length)-ret);
+	if (ret < required) {
+		memset(ndr->data+ndr->offset+ret, 0, required-ret);
 	}
 
-	ndr->offset += length;
+	ndr->offset += required;
 
 	return NT_STATUS_OK;
 }



More information about the samba-cvs mailing list