Re: [PATCH v2 net] gre: fix error handler
From: Jiri Benc <hidden>
Date: 2016-06-16 07:41:03
On Wed, 15 Jun 2016 06:24:00 -0700, Eric Dumazet wrote:
From: Eric Dumazet <edumazet@google.com>
1) gre_parse_header() can be called from gre_err()
At this point transport header points to ICMP header, not the inner
header.
2) We can not really change transport header as ipgre_err() will later
assume transport header still points to ICMP header (using icmp_hdr())
3) pskb_may_pull() logic in gre_parse_header() really works
if we are interested at zone pointed by skb->data
4) As Jiri explained in commit b7f8fe251e46 ("gre: do not pull header in
ICMP error processing") we should not pull headers in error handler.
So this fix :
A) changes gre_parse_header() to use skb->data instead of
skb_transport_header()
B) Adds a nhs parameter to gre_parse_header() so that we can skip the
not pulled IP header from error path.
This offset is 0 for normal receive path.
C) remove obsolete IPV6 includes
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Tom Herbert <redacted>
Cc: Maciej Żenczykowski <redacted>
Cc: Jiri Benc <redacted>Reviewed-by: Jiri Benc <redacted> I know this has already been applied. Didn't get to it earlier, sorry. The patch looks good. Thanks! Jiri