]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: handle str2mac case where buffer is allocated by the function
authorPhilippe Guibert <philippe.guibert@6wind.com>
Wed, 1 Feb 2017 18:05:19 +0000 (19:05 +0100)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Tue, 14 Feb 2017 12:58:59 +0000 (13:58 +0100)
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>
lib/prefix.c

index 75879b5c51e747c9e959403ac3d80aaa3894be3f..bef28ff9ec06bab6c5c95fa1fd231d76b9d46df4 100644 (file)
@@ -1125,13 +1125,15 @@ char *mac2str(char *mac, char *buf, int size)
 {
   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],