diff options
author | Jeremy Allison <jra@samba.org> | 2007-09-11 19:27:34 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:30:40 -0500 |
commit | 327ca9167ed28d2207444a93424cadef79d166b5 (patch) | |
tree | 069eb4ef0f7d5add67c9b4b6b0099f53ad01d9a4 /source3/smbd/ipc.c | |
parent | 351eb37a2555ce474ee02758f2f2cfee33d4d434 (diff) | |
download | samba-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.c | 12 |
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); |