diff options
author | Jeremy Allison <jra@samba.org> | 2002-01-18 00:36:16 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-01-18 00:36:16 +0000 |
commit | 2a3673994d9574068b5fce5d694b1183b9c67395 (patch) | |
tree | c9a89ac3a24eac63bb3c3054ca20d240059217bc /source3/rpc_parse/parse_prs.c | |
parent | 37834a48e8b944936c9eb067203f457136fb3a2c (diff) | |
download | samba-2a3673994d9574068b5fce5d694b1183b9c67395.tar.gz samba-2a3673994d9574068b5fce5d694b1183b9c67395.tar.bz2 samba-2a3673994d9574068b5fce5d694b1183b9c67395.zip |
Added prs_mem_clear(). Clear memory on buffer reallocation. That way
we're not returning what the client gave us.
Jeremy.
(This used to be commit 9a969069f132019cdd8a11be2b00356a3f09b64d)
Diffstat (limited to 'source3/rpc_parse/parse_prs.c')
-rw-r--r-- | source3/rpc_parse/parse_prs.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c index 7b4a5f3181..725e2e01a5 100644 --- a/source3/rpc_parse/parse_prs.c +++ b/source3/rpc_parse/parse_prs.c @@ -146,6 +146,15 @@ void prs_mem_free(prs_struct *ps) } /******************************************************************* + Clear the memory in a parse structure. + ********************************************************************/ + +void prs_mem_clear(prs_struct *ps) +{ + memset(ps->data_p, '\0', (size_t)ps->buffer_size); +} + +/******************************************************************* Allocate memory when unmarshalling... Always zero clears. ********************************************************************/ @@ -261,7 +270,7 @@ BOOL prs_grow(prs_struct *ps, uint32 extra_space) DEBUG(0,("prs_grow: Malloc failure for size %u.\n", (unsigned int)new_size)); return False; } - memset(new_data, '\0', new_size ); + memset(new_data, '\0', (size_t)new_size ); } else { /* * If the current buffer size is bigger than the space needed, just @@ -275,7 +284,7 @@ BOOL prs_grow(prs_struct *ps, uint32 extra_space) return False; } - memset(&new_data[ps->buffer_size], '\0', new_size - ps->buffer_size); + memset(&new_data[ps->buffer_size], '\0', (size_t)(new_size - ps->buffer_size)); } ps->buffer_size = new_size; ps->data_p = new_data; @@ -306,7 +315,7 @@ BOOL prs_force_grow(prs_struct *ps, uint32 extra_space) return False; } - memset(&new_data[ps->buffer_size], '\0', new_size - ps->buffer_size); + memset(&new_data[ps->buffer_size], '\0', (size_t)(new_size - ps->buffer_size)); ps->buffer_size = new_size; ps->data_p = new_data; |