diff options
author | George Joseph <gjoseph@digium.com> | 2017-09-19 09:38:30 -0600 |
---|---|---|
committer | George Joseph <gjoseph@digium.com> | 2017-09-19 13:52:09 -0500 |
commit | fbbc4d2433ee7a5c99ff36ae66b0d4543fa94c6c (patch) | |
tree | 4894b2cc74b7a19b186abebff2a1456c76611c27 /res | |
parent | 513e0dbb5a9317b2b7729b4f7f186a9e5ab8ad61 (diff) |
res_pjsip_pubsub: Check for Content-Type header in rx_notify_request
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
Diffstat (limited to 'res')
-rw-r--r-- | res/res_pjsip_pubsub.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c index 81b25ac2e..b0365d9d4 100644 --- a/res/res_pjsip_pubsub.c +++ b/res/res_pjsip_pubsub.c @@ -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); |