summaryrefslogtreecommitdiffstats
path: root/source/rpc_parse/parse_buffer.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-06-20 22:13:19 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:57:21 -0500
commite81e6e653aecdd0e4cfd2ea7ced16070bc376292 (patch)
tree874c3799dc49ade446d27cc1709479ffe423dc26 /source/rpc_parse/parse_buffer.c
parent88a3faf84eb74a2a8c5a100170f82102c74e9939 (diff)
downloadsamba-e81e6e653aecdd0e4cfd2ea7ced16070bc376292.tar.gz
samba-e81e6e653aecdd0e4cfd2ea7ced16070bc376292.tar.xz
samba-e81e6e653aecdd0e4cfd2ea7ced16070bc376292.zip
r7789: fix overparanoid assert() call when checking spolss buffer pointers
Diffstat (limited to 'source/rpc_parse/parse_buffer.c')
-rw-r--r--source/rpc_parse/parse_buffer.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/source/rpc_parse/parse_buffer.c b/source/rpc_parse/parse_buffer.c
index a48d5cfa982..ff2a7cc2f6e 100644
--- a/source/rpc_parse/parse_buffer.c
+++ b/source/rpc_parse/parse_buffer.c
@@ -173,14 +173,20 @@ BOOL rpcbuf_alloc_size(RPC_BUFFER *buffer, uint32 buffer_size)
void rpcbuf_move(RPC_BUFFER *src, RPC_BUFFER **dest)
{
- SMB_ASSERT( src != NULL );
+ if ( !src ) {
+ *dest = NULL;
+ return;
+ }
+
+ prs_switch_type( &src->prs, MARSHALL );
- prs_switch_type(&src->prs, MARSHALL);
- if(!prs_set_offset(&src->prs, 0))
+ if ( !prs_set_offset(&src->prs, 0) )
return;
- prs_force_dynamic(&src->prs);
- prs_mem_clear(&src->prs);
- *dest=src;
+
+ prs_force_dynamic( &src->prs );
+ prs_mem_clear( &src->prs );
+
+ *dest = src;
}
/*******************************************************************