res_pjsip_pubsub: Check for Content-Type header in rx_notify_request
authorGeorge Joseph <gjoseph@digium.com>
Tue, 19 Sep 2017 15:38:30 +0000 (09:38 -0600)
committerGeorge Joseph <gjoseph@digium.com>
Tue, 19 Sep 2017 18:52:17 +0000 (13:52 -0500)
pubsub_on_rx_notify_request wasn't checking for a null
Content-Type header before checking that it was
application/simple-message-summary.

ASTERISK-27279
Reported by: Ross Beer

Change-Id: Iec2a6c4d2e74af37ff779ecc9fd35644c5c4ea52

res/res_pjsip_pubsub.c

index 81b25ac..b0365d9 100644 (file)
@@ -3524,10 +3524,12 @@ error:
        return PJ_TRUE;
 }
 
+static pjsip_media_type simple_message_summary;
+
 static pj_bool_t pubsub_on_rx_notify_request(pjsip_rx_data *rdata)
 {
-       if (pj_stricmp2(&rdata->msg_info.msg->body->content_type.type, "application") == 0 &&
-               pj_stricmp2(&rdata->msg_info.msg->body->content_type.subtype, "simple-message-summary") == 0) {
+       if (rdata->msg_info.msg->body &&
+               pjsip_media_type_cmp(&rdata->msg_info.msg->body->content_type, &simple_message_summary, 0) == 0) {
                return pubsub_on_rx_mwi_notify_request(rdata);
        }
        return PJ_FALSE;
@@ -5363,6 +5365,8 @@ static int load_module(void)
                return AST_MODULE_LOAD_DECLINE;
        }
 
+       pjsip_media_type_init2(&simple_message_summary, "application", "simple-message-summary");
+
        if (ast_sched_start_thread(sched)) {
                ast_log(LOG_ERROR, "Could not start scheduler thread for publication expiration\n");
                ast_sched_context_destroy(sched);