The case where no buffer is passed to the str2mac function is handled.
In that case, a buffer is allocated. Then the check against the buffer
length is not done.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
{
char *ptr;
- assert (size > ETHER_ADDR_STRLEN);
if (!mac)
return NULL;
if (!buf)
ptr = (char *)XMALLOC(MTYPE_TMP, ETHER_ADDR_STRLEN* sizeof(char));
else
- ptr = buf;
+ {
+ assert (size >= ETHER_ADDR_STRLEN);
+ ptr = buf;
+ }
snprintf(ptr, (ETHER_ADDR_STRLEN),
"%02x:%02x:%02x:%02x:%02x:%02x", (uint8_t) mac[0],
(uint8_t) mac[1], (uint8_t) mac[2], (uint8_t) mac[3],