From eaf0c7c8b59e734e8c124bf2a119a21f0853cfe5 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Fri, 3 Apr 2009 23:04:42 +0000 Subject: [PATCH] libsofiasip: fix buffer overrun (SFSIP-136) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12914 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/sofia-sip/libsofia-sip-ua/su/su_uniqueid.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libs/sofia-sip/libsofia-sip-ua/su/su_uniqueid.c b/libs/sofia-sip/libsofia-sip-ua/su/su_uniqueid.c index 935c331a1b..7d3591c26b 100644 --- a/libs/sofia-sip/libsofia-sip-ua/su/su_uniqueid.c +++ b/libs/sofia-sip/libsofia-sip-ua/su/su_uniqueid.c @@ -212,8 +212,9 @@ sofia_su_uniqueid_destructor(void) #endif #endif +#define SIZEOF_NODE 6 static -void init_node(uint8_t node[6]) +void init_node(uint8_t node[SIZEOF_NODE]) { #if HAVE_GETIFADDRS && HAVE_SOCKADDR_LL struct ifaddrs *ifa, *results; @@ -234,7 +235,7 @@ void init_node(uint8_t node[6]) continue; } - memcpy(node, sll->sll_addr, sizeof node); + memcpy(node, sll->sll_addr, SIZEOF_NODE); break; #endif @@ -247,16 +248,16 @@ void init_node(uint8_t node[6]) } #endif - su_randmem(node, 6); + su_randmem(node, SIZEOF_NODE); node[0] |= 1; /* "multicast" address */ } -static unsigned char node[6]; +static unsigned char node[SIZEOF_NODE]; size_t su_node_identifier(void *address, size_t addrlen) { - if (addrlen > sizeof node) - addrlen = sizeof node; + if (addrlen > SIZEOF_NODE) + addrlen = SIZEOF_NODE; su_guid_generate(NULL); memcpy(address, node, addrlen);