summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-08-20 23:36:43 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:34:14 -0500
commit7c77a16e408f9c9043ba9520082dbad4559e1957 (patch)
tree6449d7237f38735bfc97485f96deb61808728893 /source4
parent3c4cc87bf8b7e24664d8402ab09b0f666f7b270f (diff)
downloadsamba-7c77a16e408f9c9043ba9520082dbad4559e1957.tar.gz
samba-7c77a16e408f9c9043ba9520082dbad4559e1957.tar.bz2
samba-7c77a16e408f9c9043ba9520082dbad4559e1957.zip
r9439: Make sure the remainder of the array is always initialized if the buffer is
larger then the string to be pushed. (This used to be commit 70b52e26f31b00637ed7f90f77ff0b2794dad729)
Diffstat (limited to 'source4')
-rw-r--r--source4/librpc/ndr/ndr_string.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source4/librpc/ndr/ndr_string.c b/source4/librpc/ndr/ndr_string.c
index 50fa887a34..f5f128574d 100644
--- a/source4/librpc/ndr/ndr_string.c
+++ b/source4/librpc/ndr/ndr_string.c
@@ -650,7 +650,13 @@ NTSTATUS ndr_push_charset(struct ndr_push *ndr, int ndr_flags, const char *var,
return ndr_push_error(ndr, NDR_ERR_CHARCNV,
"Bad character conversion");
}
- ndr->offset += ret;
+
+ /* 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);
+ }
+
+ ndr->offset += length;
return NT_STATUS_OK;
}