From ff8098285c17a4458e080d7af7adba9377028ee5 Mon Sep 17 00:00:00 2001 From: Matthew Fredrickson Date: Fri, 17 Feb 2006 18:55:05 +0000 Subject: [PATCH] Backport of 6480 git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.2@316 2fbb986a-6c06-0410-b554-c9c1f0a7f128 --- q931.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/q931.c b/q931.c index aad102e..858c3fe 100644 --- a/q931.c +++ b/q931.c @@ -736,7 +736,7 @@ char *pri_pres2str(int pres) static void q931_get_number(unsigned char *num, int maxlen, unsigned char *src, int len) { - if (len > maxlen - 1) { + if ((len < 0) || (len > maxlen - 1)) { num[0] = 0; return; } @@ -780,7 +780,7 @@ static FUNC_DUMP(dump_calling_party_number) static FUNC_DUMP(dump_calling_party_subaddr) { unsigned char cnum[256]; - q931_get_number(cnum, sizeof(cnum), ie->data + 2, len - 4); + q931_get_number(cnum, sizeof(cnum), ie->data + 1, len - 3); pri_message(pri, "%c Calling Sub-Address (len=%2d) [ Ext: %d Type: %s (%d) O: %d '%s' ]\n", prefix, len, ie->data[0] >> 7, subaddrtype2str((ie->data[0] & 0x70) >> 4), (ie->data[0] & 0x70) >> 4, @@ -889,7 +889,7 @@ static FUNC_DUMP(dump_redirecting_subaddr) static FUNC_RECV(receive_calling_party_subaddr) { /* copy digits to call->callingsubaddr */ - q931_get_number((unsigned char *) call->callingsubaddr, sizeof(call->callingsubaddr), ie->data + 2, len - 4); + q931_get_number((unsigned char *) call->callingsubaddr, sizeof(call->callingsubaddr), ie->data + 1, len - 3); return 0; }