From d3153cc39f5dca57e2cfc2faaefc690f64af398f Mon Sep 17 00:00:00 2001 From: Andrea Claudi Date: Thu, 13 Jun 2019 14:37:57 +0200 Subject: [PATCH] Use libbsd for strlcpy if available Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1716361 Upstream Status: iproute2.git commit 508f3c231efb1 commit 508f3c231efb179fb842d222e8151b395937b136 Author: Luca Boccassi Date: Wed Oct 31 18:00:11 2018 +0000 Use libbsd for strlcpy if available If libc does not provide strlcpy check for libbsd with pkg-config to avoid relying on inline version. Signed-off-by: Luca Boccassi Signed-off-by: Stephen Hemminger --- configure | 11 +++++++++-- genl/ctrl.c | 3 +++ ip/iplink.c | 3 +++ ip/ipnetns.c | 3 +++ ip/iproute_lwtunnel.c | 3 +++ ip/ipvrf.c | 3 +++ ip/ipxfrm.c | 3 +++ ip/tunnel.c | 3 +++ ip/xfrm_state.c | 3 +++ lib/bpf.c | 3 +++ lib/fs.c | 3 +++ lib/inet_proto.c | 3 +++ misc/ss.c | 3 +++ tc/em_ipset.c | 3 +++ tc/m_pedit.c | 3 +++ 15 files changed, 51 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 5ef5cd4cf9cde..07c18f9bda4a2 100755 --- a/configure +++ b/configure @@ -330,8 +330,15 @@ EOF then echo "no" else - echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG - echo "yes" + if ${PKG_CONFIG} libbsd --exists + then + echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG + echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG + echo "no" + else + echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG + echo "yes" + fi fi rm -f $TMPDIR/strtest.c $TMPDIR/strtest } diff --git a/genl/ctrl.c b/genl/ctrl.c index 0d9c5f2517b78..4063ec0ba474b 100644 --- a/genl/ctrl.c +++ b/genl/ctrl.c @@ -18,6 +18,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include "utils.h" #include "genl_utils.h" diff --git a/ip/iplink.c b/ip/iplink.c index 0ba5f1af76697..2f8f3bf1f84bb 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -24,6 +24,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/ip/ipnetns.c b/ip/ipnetns.c index 368be0cbc0a48..5991592e947b6 100644 --- a/ip/ipnetns.c +++ b/ip/ipnetns.c @@ -8,6 +8,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c index 388cd19a3ef0b..be9f60c3b2137 100644 --- a/ip/iproute_lwtunnel.c +++ b/ip/iproute_lwtunnel.c @@ -16,6 +16,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/ip/ipvrf.c b/ip/ipvrf.c index 8a6b7f977b142..8572b4f23e3dc 100644 --- a/ip/ipvrf.c +++ b/ip/ipvrf.c @@ -21,6 +21,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c index 12c2f721571b6..5304dfc1af906 100644 --- a/ip/ipxfrm.c +++ b/ip/ipxfrm.c @@ -28,6 +28,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/ip/tunnel.c b/ip/tunnel.c index 79de7f2406f0e..d54505d483d22 100644 --- a/ip/tunnel.c +++ b/ip/tunnel.c @@ -24,6 +24,9 @@ #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c index 85d959cc4f44f..0c8df7e6e10cd 100644 --- a/ip/xfrm_state.c +++ b/ip/xfrm_state.c @@ -27,6 +27,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include "utils.h" #include "xfrm.h" diff --git a/lib/bpf.c b/lib/bpf.c index 45f279fa4a416..35d7c45a2924d 100644 --- a/lib/bpf.c +++ b/lib/bpf.c @@ -15,6 +15,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/lib/fs.c b/lib/fs.c index 86efd4ed2ed80..af36bea0987fa 100644 --- a/lib/fs.c +++ b/lib/fs.c @@ -20,6 +20,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include diff --git a/lib/inet_proto.c b/lib/inet_proto.c index 0836a4c96a0b4..b379d8f8e720e 100644 --- a/lib/inet_proto.c +++ b/lib/inet_proto.c @@ -18,6 +18,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include "rt_names.h" #include "utils.h" diff --git a/misc/ss.c b/misc/ss.c index 41e7762bb61f5..7e94f2c8d1baa 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -18,6 +18,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include #include diff --git a/tc/em_ipset.c b/tc/em_ipset.c index 48b287f5ba3b2..550b2101a0579 100644 --- a/tc/em_ipset.c +++ b/tc/em_ipset.c @@ -20,6 +20,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include diff --git a/tc/m_pedit.c b/tc/m_pedit.c index 2aeb56d9615f1..baacc80dd94b7 100644 --- a/tc/m_pedit.c +++ b/tc/m_pedit.c @@ -23,6 +23,9 @@ #include #include #include +#ifdef HAVE_LIBBSD +#include +#endif #include #include "utils.h" #include "tc_util.h" -- 2.20.1