From: George Joseph Date: Mon, 11 Mar 2024 15:41:14 +0000 (-0600) Subject: res_pjsip_stir_shaken.c: Add checks for missing parameters X-Git-Tag: 21.2.0-rc2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa23bd9bd7422f00a6257fc2c4b152d17e748220;p=thirdparty%2Fasterisk.git res_pjsip_stir_shaken.c: Add checks for missing parameters * Added checks for missing session, session->channel and rdata in stir_shaken_incoming_request. * Added checks for missing session, session->channel and tdata in stir_shaken_outgoing_request. Resolves: #645 --- diff --git a/res/res_pjsip_stir_shaken.c b/res/res_pjsip_stir_shaken.c index 1e364e2519..fa2103a857 100644 --- a/res/res_pjsip_stir_shaken.c +++ b/res/res_pjsip_stir_shaken.c @@ -211,6 +211,16 @@ static int stir_shaken_incoming_request(struct ast_sip_session *session, pjsip_r enum process_failure_rc p_rc; SCOPE_ENTER(1, "%s: Enter\n", session_name); + if (!session) { + SCOPE_EXIT_LOG_RTN_VALUE(1, LOG_ERROR, "No session\n"); + } + if (!session->channel) { + SCOPE_EXIT_LOG_RTN_VALUE(1, LOG_ERROR, "%s: No channel\n", session_name); + } + if (!rdata) { + SCOPE_EXIT_LOG_RTN_VALUE(1, LOG_ERROR, "%s: No rdata\n", session_name); + } + /* Check if this is a reinvite. If it is, we don't need to do anything */ if (rdata->msg_info.to->tag.slen) { SCOPE_EXIT_RTN_VALUE(0, "%s: Reinvite. No action needed\n", session_name); @@ -401,6 +411,16 @@ static void stir_shaken_outgoing_request(struct ast_sip_session *session, const char *session_name = ast_sip_session_get_name(session); SCOPE_ENTER(1, "%s: Enter\n", session_name); + if (!session) { + SCOPE_EXIT_LOG_RTN(LOG_ERROR, "No session\n"); + } + if (!session->channel) { + SCOPE_EXIT_LOG_RTN(LOG_ERROR, "%s: No channel\n", session_name); + } + if (!tdata) { + SCOPE_EXIT_LOG_RTN(LOG_ERROR, "%s: No tdata\n", session_name); + } + old_identity = pjsip_msg_find_hdr_by_name(tdata->msg, &identity_hdr_str, NULL); if (old_identity) { SCOPE_EXIT_RTN("Found an existing Identity header\n");