From: Michael Jerris Date: Fri, 3 Apr 2009 23:04:42 +0000 (+0000) Subject: libsofiasip: fix buffer overrun (SFSIP-136) X-Git-Tag: v1.0.4~1272 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eaf0c7c8b59e734e8c124bf2a119a21f0853cfe5;p=thirdparty%2Ffreeswitch.git libsofiasip: fix buffer overrun (SFSIP-136) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12914 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- 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);