summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2018-12-10 18:29:48 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2018-12-10 18:29:48 +0100
commit1fb770357a784baa41630bfe186f02b79d8000b6 (patch)
tree3bb9355b9c4e1c4c2f69d435bbdd4ecc0b42be2d
parentfff435fced595bd2facf3f05d2b3b0d61988e503 (diff)
Add compatibility support for strscpy()
-rw-r--r--configure.ac10
-rw-r--r--kernel/include/linux/netfilter/ipset/ip_set_compat.h.in5
2 files changed, 15 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index f570591..f229361 100644
--- a/configure.ac
+++ b/configure.ac
@@ -639,6 +639,16 @@ else
AC_SUBST(HAVE_LOCKDEP_NFNL_IS_HELD, undef)
fi
+AC_MSG_CHECKING([kernel source for strscpy() in string.h])
+if test -f $ksourcedir/include/linux/timer.h && \
+ $GREP -q ' strscpy' $ksourcedir/include/linux/string.h; then
+ AC_MSG_RESULT(yes)
+ AC_SUBST(HAVE_STRSCPY, define)
+else
+ AC_MSG_RESULT(no)
+ AC_SUBST(HAVE_STRSCPY, undef)
+fi
+
AC_MSG_CHECKING([kernel source for struct net_generic])
if test -f $ksourcedir/include/net/netns/generic.h && \
$GREP -q 'struct net_generic' $ksourcedir/include/net/netns/generic.h; then
diff --git a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
index 1d536a3..c5da39c 100644
--- a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
+++ b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
@@ -47,6 +47,7 @@
#@HAVE_PASSING_EXTENDED_ACK_TO_CALLBACKS@ HAVE_PASSING_EXTENDED_ACK_TO_CALLBACKS
#@HAVE_TYPEDEF_SCTP_SCTPHDR_T@ HAVE_TYPEDEF_SCTP_SCTPHDR_T
#@HAVE_TIMER_SETUP@ HAVE_TIMER_SETUP
+#@HAVE_STRSCPY@ HAVE_STRSCPY
#@HAVE_LOCKDEP_NFNL_IS_HELD@ HAVE_LOCKDEP_NFNL_IS_HELD
#ifdef HAVE_EXPORT_SYMBOL_GPL_IN_MODULE_H
@@ -377,6 +378,10 @@ static inline u16 nfnl_msg_type(u8 subsys, u8 msg_type)
struct type *var = set->data
#endif
+#ifndef HAVE_STRSCPY
+#define strscpy(dst, src, n) (strncpy(dst, src, n) == (dst))
+#endif
+
#ifndef smp_mb__before_atomic
#define smp_mb__before_atomic() smp_mb()
#define smp_mb__after_atomic() smp_mb()