From b5f0f8868363c482a2c4ce343e3ee6ad256b0708 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Thu, 13 Apr 2017 16:20:07 -0500 Subject: [PATCH] Ensure 2543 transaction key buffer is large enough. The CSeq method length needs to be factored into the allocated buffer length. Otherwise, the buffer may not be large enough to accommodate the entire key. --- pjsip/src/pjsip/sip_transaction.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index c1750dc..2200d8d 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -288,7 +288,8 @@ static pj_status_t create_tsx_key_2543( pj_pool_t *pool, host = &rdata->msg_info.via->sent_by.host; /* Calculate length required. */ - len_required = 9 + /* CSeq number */ + len_required = method->name.slen + /* Method */ + 9 + /* CSeq number */ rdata->msg_info.from->tag.slen + /* From tag. */ rdata->msg_info.cid->id.slen + /* Call-ID */ host->slen + /* Via host. */ -- 1.9.1