]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip_messaging: Check for body in in-dialog message
authorGeorge Joseph <gjoseph@digium.com>
Wed, 12 Jun 2019 18:03:04 +0000 (12:03 -0600)
committerBen Ford <bford@digium.com>
Thu, 11 Jul 2019 18:34:31 +0000 (13:34 -0500)
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

index cbc6ea56126a6c84446d1c1154c3819adc6205d3..362eb10f5c8017b1b625eaa64c38bdbf7b944845 100644 (file)
@@ -90,9 +90,12 @@ static enum pjsip_status_code check_content_type_any_text(const pjsip_rx_data *r
        int res = PJSIP_SC_UNSUPPORTED_MEDIA_TYPE;
        pj_str_t text = { "text", 4};
 
+       if (!(rdata->msg_info.msg->body && rdata->msg_info.msg->body->len > 0)) {
+               return res;
+       }
+
        /* We'll accept any text/ 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) {
+       if (pj_stricmp(&rdata->msg_info.msg->body->content_type.type, &text) == 0) {
                res = PJSIP_SC_OK;
        } else if (rdata->msg_info.ctype
                && pj_stricmp(&rdata->msg_info.ctype->media.type, &text) == 0) {