提交 eaf0c7c8 authored 作者: Michael Jerris's avatar Michael Jerris

libsofiasip: fix buffer overrun (SFSIP-136)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12914 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 db4b1171
......@@ -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);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论