From: Kevin Harwell Date: Wed, 3 Jan 2018 16:41:46 +0000 (-0600) Subject: res_pjsip_session: Check if sequence header is missing X-Git-Tag: 15.3.0-rc1~141 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02452ef4d181c3216f72b45d1cb92cfd8776cacf;p=thirdparty%2Fasterisk.git res_pjsip_session: Check if sequence header is missing The pjsip_msg_find_hdr function can return NULL. This patch adds a check when searching for the sequence header to make sure a NULL pointer is never de-referenced. Change-Id: I19af23aeeded65be016be92360e8cb7ffe51fad2 --- diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index 64c150e3c3..c3393823e9 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -3309,6 +3309,12 @@ static void handle_outgoing_response(struct ast_sip_session *session, pjsip_tx_d struct ast_sip_session_supplement *supplement; struct pjsip_status_line status = tdata->msg->line.status; pjsip_cseq_hdr *cseq = pjsip_msg_find_hdr(tdata->msg, PJSIP_H_CSEQ, NULL); + + if (!cseq) { + ast_log(LOG_ERROR, "Cannot send response due to missing sequence header"); + return; + } + ast_debug(3, "Method is %.*s, Response is %d %.*s\n", (int) pj_strlen(&cseq->method.name), pj_strbuf(&cseq->method.name), status.code, (int) pj_strlen(&status.reason), pj_strbuf(&status.reason));