]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
libsofiasip: fix buffer overrun (SFSIP-136)
authorMichael Jerris <mike@jerris.com>
Fri, 3 Apr 2009 23:04:42 +0000 (23:04 +0000)
committerMichael Jerris <mike@jerris.com>
Fri, 3 Apr 2009 23:04:42 +0000 (23:04 +0000)
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

index 935c331a1b76e3fc58c0a3eb813d62e7684364e8..7d3591c26bbca7d2bb66196c3e7c4de142c951ca 100644 (file)
@@ -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);