From: Maria Matejka Date: Wed, 14 Aug 2019 08:28:23 +0000 (+0200) Subject: Not calling memcpy with n=0. X-Git-Tag: v2.0.8~77^2~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d607205486d7ea11f2cbf3dcc3d5e7e6b53f1d0f;p=thirdparty%2Fbird.git Not calling memcpy with n=0. --- diff --git a/lib/string.h b/lib/string.h index d6ae5ef75..0f650178d 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 dc63e13ea..0529c45aa 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); }