summaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorSusant Sahani2014-05-09 20:41:32 +0200
committerDavid S. Miller2014-05-13 06:27:19 +0200
commitc8965932a2e3b70197ec02c6741c29460279e2a8 (patch)
tree6fc84b84873ecf41026975b784375ffc92cf753f /net/ipv6
parentsfc: fix calling of free_irq with already free vector (diff)
downloadkernel-qcow2-linux-c8965932a2e3b70197ec02c6741c29460279e2a8.tar.gz
kernel-qcow2-linux-c8965932a2e3b70197ec02c6741c29460279e2a8.tar.xz
kernel-qcow2-linux-c8965932a2e3b70197ec02c6741c29460279e2a8.zip
ip6_tunnel: fix potential NULL pointer dereference
The function ip6_tnl_validate assumes that the rtnl attribute IFLA_IPTUN_PROTO always be filled . If this attribute is not filled by the userspace application kernel get crashed with NULL pointer dereference. This patch fixes the potential kernel crash when IFLA_IPTUN_PROTO is missing . Signed-off-by: Susant Sahani <susant@redhat.com> Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/ip6_tunnel.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index b05b609f69d1..f6a66bb4114d 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -1557,7 +1557,7 @@ static int ip6_tnl_validate(struct nlattr *tb[], struct nlattr *data[])
{
u8 proto;
- if (!data)
+ if (!data || !data[IFLA_IPTUN_PROTO])
return 0;
proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);