mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
res_pjsip_messaging: Check URI type before dereferencing
We aren't validating that the URI we just parsed is a SIP/SIPS one before trying to access the user, host, and port members of a possibly uninitialized structure. Also update the MessageSend documentation to indicate what 'from' formats are accepted. ASTERISK-26484 #close Reported by: Vinod Dharashive Change-Id: I476b5cc5f18a7713d0ee945374f2a1c164857d30
This commit is contained in:
@@ -235,7 +235,15 @@ static void update_from(pjsip_tx_data *tdata, char *from)
|
||||
parsed_name_addr = (pjsip_name_addr *) pjsip_parse_uri(tdata->pool, from,
|
||||
strlen(from), PJSIP_PARSE_URI_AS_NAMEADDR);
|
||||
if (parsed_name_addr) {
|
||||
pjsip_sip_uri *parsed_uri = pjsip_uri_get_uri(parsed_name_addr->uri);
|
||||
pjsip_sip_uri *parsed_uri;
|
||||
|
||||
if (!PJSIP_URI_SCHEME_IS_SIP(parsed_name_addr->uri)
|
||||
&& !PJSIP_URI_SCHEME_IS_SIPS(parsed_name_addr->uri)) {
|
||||
ast_log(LOG_WARNING, "From address '%s' is not a valid SIP/SIPS URI\n", from);
|
||||
return;
|
||||
}
|
||||
|
||||
parsed_uri = pjsip_uri_get_uri(parsed_name_addr->uri);
|
||||
|
||||
if (pj_strlen(&parsed_name_addr->display)) {
|
||||
pj_strdup(tdata->pool, &name_addr->display, &parsed_name_addr->display);
|
||||
|
Reference in New Issue
Block a user