From 2a3673994d9574068b5fce5d694b1183b9c67395 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 18 Jan 2002 00:36:16 +0000 Subject: 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) --- source3/rpc_parse/parse_prs.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'source3/rpc_parse/parse_prs.c') 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 @@ -145,6 +145,15 @@ void prs_mem_free(prs_struct *ps) ps->data_offset = 0; } +/******************************************************************* + 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; -- cgit