Skip to content
Snippets Groups Projects
Commit e74dde51 authored by Walter Doekes's avatar Walter Doekes Committed by Joshua Colp
Browse files

pjsip: Prevent invalid memory access when attempting to contact a non-sip URI

You cannot cast a pjsip_uri to a pjsip_sip_uri using pjsip_uri_get_uri,
without checking that it's a PJSIP_URI_SCHEME_IS_SIP(S).

ASTERISK-28936

Change-Id: I9f572b3677e4730458e9402719e580f8681afe2a
parent 3927f79c
No related branches found
No related tags found
No related merge requests found
......@@ -3674,6 +3674,12 @@ pjsip_dialog *ast_sip_create_dialog_uac(const struct ast_sip_endpoint *endpoint,
pj_cstr(&target_uri, uri);
res = pjsip_dlg_create_uac(pjsip_ua_instance(), &local_uri, NULL, &remote_uri, &target_uri, &dlg);
if (res == PJ_SUCCESS && !(PJSIP_URI_SCHEME_IS_SIP(dlg->target) || PJSIP_URI_SCHEME_IS_SIPS(dlg->target))) {
/* dlg->target is a pjsip_other_uri, but it's assumed to be a
* pjsip_sip_uri below. Fail fast. */
res = PJSIP_EINVALIDURI;
pjsip_dlg_terminate(dlg);
}
if (res != PJ_SUCCESS) {
if (res == PJSIP_EINVALIDURI) {
ast_log(LOG_ERROR,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment