From 103b789e56a56951b68a1580edaf7e949031b10d Mon Sep 17 00:00:00 2001 From: traud Date: Sat, 4 Apr 2020 11:28:06 +0200 Subject: [PATCH] app_osplookup: Avoid a format truncation. Ensure that output buffers for the osp_convert_inout function have sufficient space for additional data such as brackets and ports. ASTERISK-28804 Change-Id: Ie54c8241ff0cc653910539c2db00ff2a4869750b --- apps/app_osplookup.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/app_osplookup.c b/apps/app_osplookup.c index eed42c484f..7cde4552a8 100644 --- a/apps/app_osplookup.c +++ b/apps/app_osplookup.c @@ -447,6 +447,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define OSP_SIZE_UUID ((unsigned int)16) /* UUID size */ #define OSP_SIZE_UUIDSTR ((unsigned int)36) /* UUID string size */ #define OSP_SIZE_QOSSTR ((unsigned int)1024) /* QoS string buffer size */ +#define OSP_SIZE_OUTSTR ((unsigned int)288) /* OSP out size for osp_convert_inout */ /* Call ID Type*/ #define OSP_CALLID_UNDEF ((unsigned int)0) /* Undefined */ @@ -1087,8 +1088,8 @@ static int osp_validate_token( int res; int tokenlen; unsigned char tokenstr[OSP_SIZE_TOKSTR]; - char src[OSP_SIZE_NORSTR]; - char dest[OSP_SIZE_NORSTR]; + char src[OSP_SIZE_OUTSTR]; + char dest[OSP_SIZE_OUTSTR]; unsigned int authorised; unsigned int dummy = 0; int error; @@ -1516,14 +1517,14 @@ static int osp_lookup( char* tmp; unsigned int tokenlen; char token[OSP_SIZE_TOKSTR]; - char src[OSP_SIZE_NORSTR]; - char dev[OSP_SIZE_NORSTR]; - char host[OSP_SIZE_NORSTR]; + char src[OSP_SIZE_OUTSTR]; + char dev[OSP_SIZE_OUTSTR]; + char host[OSP_SIZE_OUTSTR]; unsigned int i, type; struct osp_callid callid; unsigned int callidnum; OSPT_CALL_ID* callids[OSP_CALLID_MAXNUM]; - char dest[OSP_SIZE_NORSTR]; + char dest[OSP_SIZE_OUTSTR]; const char* preferred[2] = { NULL }; unsigned int dummy = 0; OSPEFAILREASON reason; -- 2.47.2