summaryrefslogtreecommitdiff
path: root/source3/smbd/ipc.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2007-09-11 19:27:34 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:30:40 -0500
commit327ca9167ed28d2207444a93424cadef79d166b5 (patch)
tree069eb4ef0f7d5add67c9b4b6b0099f53ad01d9a4 /source3/smbd/ipc.c
parent351eb37a2555ce474ee02758f2f2cfee33d4d434 (diff)
downloadsamba-327ca9167ed28d2207444a93424cadef79d166b5.tar.gz
samba-327ca9167ed28d2207444a93424cadef79d166b5.tar.bz2
samba-327ca9167ed28d2207444a93424cadef79d166b5.zip
r25103: Ensure we don't return unwritten memory (valgrind caught).
Jeremy. (This used to be commit b3f0d39d11fa18b7bfef6cec88efaf4a2be2d6e0)
Diffstat (limited to 'source3/smbd/ipc.c')
-rw-r--r--source3/smbd/ipc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c
index 2403706929..0709acc756 100644
--- a/source3/smbd/ipc.c
+++ b/source3/smbd/ipc.c
@@ -54,9 +54,10 @@ static void copy_trans_params_and_data(char *outbuf, int align,
if(data_len < 0)
data_len = 0;
- DEBUG(5,("copy_trans_params_and_data: params[%d..%d] data[%d..%d]\n",
+ DEBUG(5,("copy_trans_params_and_data: params[%d..%d] data[%d..%d] (align %d)\n",
param_offset, param_offset + param_len,
- data_offset , data_offset + data_len));
+ data_offset , data_offset + data_len,
+ align));
*copy_into = '\0';
@@ -65,7 +66,12 @@ static void copy_trans_params_and_data(char *outbuf, int align,
if (param_len)
memcpy(copy_into, &rparam[param_offset], param_len);
- copy_into += param_len + align;
+ copy_into += param_len;
+ if (align) {
+ memset(copy_into, '\0', align);
+ }
+
+ copy_into += align;
if (data_len )
memcpy(copy_into, &rdata[data_offset], data_len);