From a9d8b56831146166abc7fb8abe8ae8aaff295358 Mon Sep 17 00:00:00 2001 From: George Joseph Date: Wed, 12 Jun 2019 12:03:04 -0600 Subject: [PATCH] res_pjsip_messaging: Check for body in in-dialog message We now check that a body exists and it has a length > 0 before attempting to process it. ASTERISK-28447 Reported-by: Gil Richard Change-Id: Ic469544b22ab848734636588d4c93426cc6f4b1f --- res/res_pjsip_messaging.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/res/res_pjsip_messaging.c b/res/res_pjsip_messaging.c index 10c5f293b1..76d37f2b3b 100644 --- a/res/res_pjsip_messaging.c +++ b/res/res_pjsip_messaging.c @@ -91,10 +91,13 @@ static enum pjsip_status_code check_content_type_in_dialog(const pjsip_rx_data * static const pj_str_t text = { "text", 4}; static const pj_str_t application = { "application", 11}; + if (!(rdata->msg_info.msg->body && rdata->msg_info.msg->body->len > 0)) { + return res; + } + /* We'll accept any text/ or application/ content type */ - if (rdata->msg_info.msg->body && rdata->msg_info.msg->body->len - && (pj_stricmp(&rdata->msg_info.msg->body->content_type.type, &text) == 0 - || pj_stricmp(&rdata->msg_info.msg->body->content_type.type, &application) == 0)) { + if (pj_stricmp(&rdata->msg_info.msg->body->content_type.type, &text) == 0 + || pj_stricmp(&rdata->msg_info.msg->body->content_type.type, &application) == 0) { res = PJSIP_SC_OK; } else if (rdata->msg_info.ctype && (pj_stricmp(&rdata->msg_info.ctype->media.type, &text) == 0 -- 2.21.0