From 364bcd51dbc0bb52e653fd7f345936c018eeb181 Mon Sep 17 00:00:00 2001 From: Leonard Crestez Date: Tue, 6 Sep 2022 17:23:35 +0300 Subject: [PATCH] ipt_DF: Fix for upstream replacement of skb_make_writable with skb_ensure_writable Signed-off-by: Leonard Crestez --- extensions/dontfragment/ipt_DF.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/extensions/dontfragment/ipt_DF.c b/extensions/dontfragment/ipt_DF.c index 923368d..31912f3 100644 --- a/extensions/dontfragment/ipt_DF.c +++ b/extensions/dontfragment/ipt_DF.c @@ -1,3 +1,6 @@ +#ifndef LINUX_VERSION_CODE +#include +#endif #include #include #include @@ -10,6 +13,14 @@ MODULE_AUTHOR("Semyon Verchenko"); MODULE_DESCRIPTION("Netfilter module to set/reset DF flag"); MODULE_LICENSE("Dual BSD/GPL"); +/* + * skb_make_writable was removed in this commit: + * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=2cf6bffc49dae26edd12af6b57c8c780590380bf + */ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0)) +#define skb_ensure_writable(skb, len) (!skb_make_writable((skb), (len))) +#endif + static int df_tg_check(const struct xt_tgchk_param *param) { return 0; @@ -23,7 +34,7 @@ static unsigned int df_tg(struct sk_buff *skb, const struct xt_action_param *par __u16 old_frag_off, new_frag_off; /* make_writable might invoke copy-on-write, so fetch iph afterwards */ - if (!skb_make_writable(skb, sizeof(struct iphdr))){ + if (skb_ensure_writable(skb, sizeof(struct iphdr))){ printk(KERN_ERR "DF: Error making skb writable\n"); return NF_DROP; }