~singpolyma/asterisk

1799ab0f1e1137eb7ece2d9944189a56fe70924f — George Joseph 5 years ago 2bc037b
[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

Gbp-Pq: Name AST-2019-002.patch
1 files changed, 6 insertions(+), 3 deletions(-)

M res/res_pjsip_messaging.c
M res/res_pjsip_messaging.c => res/res_pjsip_messaging.c +6 -3
@@ 90,10 90,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