Re: [PATCH v4] add stealth mode

From: Eric Dumazet
Date: Wed Sep 16 2015 - 07:11:29 EST


On Wed, 2015-09-16 at 11:54 +0200, Matteo Croce wrote:
> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
> index 93898e0..fe62ae0 100644
> --- a/net/ipv4/tcp_ipv4.c
> +++ b/net/ipv4/tcp_ipv4.c
> @@ -77,6 +77,7 @@
> #include <net/busy_poll.h>
>
> #include <linux/inet.h>
> +#include <linux/inetdevice.h>
> #include <linux/ipv6.h>
> #include <linux/stddef.h>
> #include <linux/proc_fs.h>
> @@ -1652,7 +1653,7 @@ csum_error:
> TCP_INC_STATS_BH(net, TCP_MIB_CSUMERRORS);
> bad_packet:
> TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
> - } else {
> + } else if (!IN_DEV_STEALTH(skb->dev->ip_ptr)) {
> tcp_v4_send_reset(NULL, skb);
> }


It is illegal to deref skb->dev->ip_ptr without proper accessor /
annotations.

Check

struct in_device *in_dev = __in_dev_get_rcu(skb->dev);

(Same remarks in other places of your patch)



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/