mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-06 21:09:47 +00:00
chan_sip: when getting sip pvt return failure if not found
In handle_request_invite, when processing a pickup, a call is made to get_sip_pvt_from_replaces to locate the pvt for the subscription. The pvt is assumed to be valid when zero is returned indicating no error, and is dereferenced which can cause a crash if it was not found. This change checks the not found case and returns -1 which allows the calling code to fail appropriately. ASTERISK-27217 #close Reported-by: Bryan Walters Change-Id: I6bee92b8b8b85fcac3fd66f8c00ab18bc1765612
This commit is contained in:
@@ -18568,6 +18568,11 @@ static int get_sip_pvt_from_replaces(const char *callid, const char *totag,
|
||||
}
|
||||
}
|
||||
|
||||
if (!sip_pvt_ptr) {
|
||||
/* return error if sip_pvt was not found */
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* If we're here sip_pvt_ptr has been copied to *out_pvt, prevent RAII_VAR cleanup */
|
||||
sip_pvt_ptr = NULL;
|
||||
|
||||
|
Reference in New Issue
Block a user