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
This commit is contained in:
traud 2020-04-04 11:28:06 +02:00 committed by Friendly Automation
parent 023d73a0e7
commit a5100e7171
1 changed files with 7 additions and 6 deletions

View File

@ -449,6 +449,7 @@
#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 */
@ -1089,8 +1090,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;
@ -1518,14 +1519,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;