]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Not calling memcpy with n=0.
authorMaria Matejka <mq@ucw.cz>
Wed, 14 Aug 2019 08:28:23 +0000 (10:28 +0200)
committerMaria Matejka <mq@ucw.cz>
Sat, 17 Aug 2019 11:46:30 +0000 (13:46 +0200)
lib/string.h
proto/bgp/bgp.h

index 0d34f9c5769aa2b6c1bcd5c67f91048af8f64ee0..380133945991aa1d5362bad98fcaeabeb749b116 100644 (file)
@@ -60,6 +60,15 @@ memset32(void *D, u32 val, uint n)
     dst[i] = val;
 }
 
+static inline void *
+bmemcpy(void *dest, const void *src, size_t n)
+{
+  if (n)
+    return memcpy(dest, src, n);
+  else
+    return dest;
+}
+
 #define ROUTER_ID_64_LENGTH 23
 
 #endif
index 0fcce87833a425f98c3f4b08090775123e94099c..fefcf9701565f5c808775e0641c91539becd2e3f 100644 (file)
@@ -495,7 +495,7 @@ static inline void
 bgp_set_attr_data(ea_list **to, struct linpool *pool, uint code, uint flags, void *data, uint len)
 {
   struct adata *a = lp_alloc_adata(pool, len);
-  memcpy(a->data, data, len);
+  bmemcpy(a->data, data, len);
   bgp_set_attr(to, pool, code, flags, (uintptr_t) a);
 }