mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
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
This commit is contained in:
committed by
Friendly Automation
parent
f30a61022a
commit
1e5ea08e0c
@@ -3327,6 +3327,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,
|
||||
|
Reference in New Issue
Block a user