From 508f3c231efb179fb842d222e8151b395937b136 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Wed, 31 Oct 2018 18:00:11 +0000 Subject: [PATCH] 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 744d6282..c5655978 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 6133336a..fef6aaa9 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 b5519201..067f5409 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 0eac18cf..da019d76 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 8f497015..2285bc1d 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 8a6b7f97..8572b4f2 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 17ab4abe..b02f30a6 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 d0d55f37..73abb2e2 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 e8c01746..18e0c6fa 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 45f279fa..35d7c45a 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 86efd4ed..af36bea0 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 0836a4c9..b379d8f8 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 4d12fb5d..c472fbd9 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -19,6 +19,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 48b287f5..550b2101 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 2aeb56d9..baacc80d 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"