mirror of
https://github.com/samba-team/samba.git
synced 2025-11-23 20:23:50 +03:00
Fixed memory leak in RPC parsing code.
Problem in prs_set_buffer_size() was Realloc returns a NULL when newsize is zero (equivalent to a free()). We were returning a failure here without resetting the buffer_size or the data_p pointer in the prs_struct. And we weren't checking for a failure from prs_set_buffer_size(). So realloc's to zero size were not reflected in the prs_struct: memory leak.
(This used to be commit 590d9ece84)
This commit is contained in:
@@ -480,7 +480,12 @@ authentication failed. Denying the request.\n", p->name));
|
||||
* size as the current offset.
|
||||
*/
|
||||
|
||||
prs_set_buffer_size(&p->in_data.data, prs_offset(&p->in_data.data));
|
||||
if(!prs_set_buffer_size(&p->in_data.data, prs_offset(&p->in_data.data)))
|
||||
{
|
||||
DEBUG(0,("process_request_pdu: Call to prs_set_buffer_size failed!\n"));
|
||||
set_incoming_fault(p);
|
||||
return False;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the parse offset to the start of the data and set the
|
||||
|
||||
Reference in New Issue
Block a user