summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/string.h9
-rw-r--r--proto/bgp/bgp.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/string.h b/lib/string.h
index d6ae5ef7..0f650178 100644
--- a/lib/string.h
+++ b/lib/string.h
@@ -72,6 +72,15 @@ bstrcmp(const char *s1, const char *s2)
return !s2 - !s1;
}
+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
diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h
index dc63e13e..0529c45a 100644
--- a/proto/bgp/bgp.h
+++ b/proto/bgp/bgp.h
@@ -552,7 +552,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);
}