summaryrefslogtreecommitdiff
path: root/source3/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
commitef34e3336b6f4a84fb0d0a121c1eb5c54165b457 (patch)
treeb870235c71a983641da66a47d52beef9c8447dfc /source3/rpc_parse/parse_buffer.c
parent0b8bc68b50e1cf75686563375bd63c38aba197cb (diff)
downloadsamba-ef34e3336b6f4a84fb0d0a121c1eb5c54165b457.tar.gz
samba-ef34e3336b6f4a84fb0d0a121c1eb5c54165b457.tar.bz2
samba-ef34e3336b6f4a84fb0d0a121c1eb5c54165b457.zip
r7789: fix overparanoid assert() call when checking spolss buffer pointers
(This used to be commit e81e6e653aecdd0e4cfd2ea7ced16070bc376292)
Diffstat (limited to 'source3/rpc_parse/parse_buffer.c')
-rw-r--r--source3/rpc_parse/parse_buffer.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/source3/rpc_parse/parse_buffer.c b/source3/rpc_parse/parse_buffer.c
index a48d5cfa98..ff2a7cc2f6 100644
--- a/source3/rpc_parse/parse_buffer.c
+++ b/source3/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;
}
/*******************************************************************