diff options
author | Linus Lüssing <linus.luessing@web.de> | 2013-08-06 18:21:15 (GMT) |
---|---|---|
committer | Antonio Quartulli <ordex@autistici.org> | 2013-08-10 20:55:42 (GMT) |
commit | 9d2c9488cedb666bc8206fbdcdc1575e0fbc5929 (patch) | |
tree | eef64eda7ea4985117e5a4ccefaa76578bded182 /net/batman-adv/gateway_client.h | |
parent | 645359930231d5e78fd3296a38b98c1a658a7ade (diff) | |
download | linux-9d2c9488cedb666bc8206fbdcdc1575e0fbc5929.tar.xz |
batman-adv: fix potential kernel paging errors for unicast transmissions
There are several functions which might reallocate skb data. Currently
some places keep reusing their old ethhdr pointer regardless of whether
they became invalid after such a reallocation or not. This potentially
leads to kernel paging errors.
This patch fixes these by refetching the ethdr pointer after the
potential reallocations.
Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Diffstat (limited to 'net/batman-adv/gateway_client.h')
-rw-r--r-- | net/batman-adv/gateway_client.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/batman-adv/gateway_client.h b/net/batman-adv/gateway_client.h index 039902d..1037d75 100644 --- a/net/batman-adv/gateway_client.h +++ b/net/batman-adv/gateway_client.h @@ -34,7 +34,6 @@ void batadv_gw_node_delete(struct batadv_priv *bat_priv, void batadv_gw_node_purge(struct batadv_priv *bat_priv); int batadv_gw_client_seq_print_text(struct seq_file *seq, void *offset); bool batadv_gw_is_dhcp_target(struct sk_buff *skb, unsigned int *header_len); -bool batadv_gw_out_of_range(struct batadv_priv *bat_priv, - struct sk_buff *skb, struct ethhdr *ethhdr); +bool batadv_gw_out_of_range(struct batadv_priv *bat_priv, struct sk_buff *skb); #endif /* _NET_BATMAN_ADV_GATEWAY_CLIENT_H_ */ |