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; }
