From 2ef714cc938e0a36fc75856b4d5bbf70dfcb71a4 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 26 Feb 2010 14:42:00 +0100 Subject: [PATCH] compat_xtables: add a memmem function This will be needed by xt_ipp2p right away. --- extensions/compat_xtables.c | 14 ++++++++++++++ extensions/compat_xtnu.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/extensions/compat_xtables.c b/extensions/compat_xtables.c index 9ab4785..dbf5c11 100644 --- a/extensions/compat_xtables.c +++ b/extensions/compat_xtables.c @@ -509,4 +509,18 @@ int xtnu_skb_linearize(struct sk_buff *skb) EXPORT_SYMBOL_GPL(xtnu_skb_linearize); #endif +void *HX_memmem(const void *space, size_t spacesize, + const void *point, size_t pointsize) +{ + size_t i; + + if (pointsize > spacesize) + return NULL; + for (i = 0; i <= spacesize - pointsize; ++i) + if (memcmp(space + i, point, pointsize) == 0) + return (void *)space + i; + return NULL; +} +EXPORT_SYMBOL_GPL(HX_memmem); + MODULE_LICENSE("GPL"); diff --git a/extensions/compat_xtnu.h b/extensions/compat_xtnu.h index 6e6620a..f4477d1 100644 --- a/extensions/compat_xtnu.h +++ b/extensions/compat_xtnu.h @@ -154,4 +154,6 @@ extern void xtnu_proto_csum_replace4(__u16 __bitwise *, struct sk_buff *, __be32, __be32, bool); extern int xtnu_skb_linearize(struct sk_buff *); +extern void *HX_memmem(const void *, size_t, const void *, size_t); + #endif /* _COMPAT_XTNU_H */