From 5e763029dc207c99796adc1c3ace71cf6de59446 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Thu, 25 Oct 2018 07:06:21 +0200 Subject: [PATCH] kex: safety check for accessing CSeq in per method stats - GH #1687 --- src/modules/kex/core_stats.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/modules/kex/core_stats.c b/src/modules/kex/core_stats.c index 2f51a1f9555..ef4d85dad83 100644 --- a/src/modules/kex/core_stats.c +++ b/src/modules/kex/core_stats.c @@ -234,8 +234,17 @@ static int km_cb_req_stats(struct sip_msg *msg, static int km_cb_rpl_stats_by_method(struct sip_msg *msg, unsigned int flags, void *param) { - int method = get_cseq(msg)->method_id; - int group = msg->first_line.u.reply.statuscode / 100 - 1; + int method = 0; + int group = 0; + + if(msg==NULL) { + return -1; + } + if (!msg->cseq && (parse_headers(msg, HDR_CSEQ_F, 0) < 0 || !msg->cseq)) { + return -1; + } + method = get_cseq(msg)->method_id; + group = msg->first_line.u.reply.statuscode / 100 - 1; if (group >= 0 && group <= 5) { switch(method) {