content='cgit v1.2.3-54-g00ecf'/>
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2017-01-23 16:43:06 -0800
committerDavid S. Miller <davem@davemloft.net>2017-01-24 14:53:24 -0500
commitfbfa743a9d2a0ffa24251764f10afc13eb21e739 (patch)
tree391e471dde0dc5afd2f24ab0410d4a2a8761180b
parent21b995a9cb093fff33ec91d7cb3822b882a90a1e (diff)
ipv6: fix ip6_tnl_parse_tlv_enc_lim()
This function suffers from multiple issues. First one is that pskb_may_pull() may reallocate skb->head, so the 'raw' pointer needs either to be reloaded or not used at all. Second issue is that NEXTHDR_DEST handling does not validate that the options are present in skb->data, so we might read garbage or access non existent memory. With help from Willem de Bruijn. Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: Dmitry Vyukov <dvyukov@google.com> Cc: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>