aboutsummaryrefslogtreecommitdiffstats
path: root/net/appletalk/ddp.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-10-27 18:26:21 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-10-30 18:24:34 -0500
commit201a95afaa324b23188eeec268f6bb0b4b70b710 (patch)
treeb4821e52a74aefc2a3b766c43b32aaa83a3eca34 /net/appletalk/ddp.c
parentd458fd82c9bb536e4a582955e88554a02a92bf78 (diff)
[APPLETALK]: Fix potential OOPS in atalk_sendmsg().
atrtr_find() can return NULL, so do not blindly dereference rt->dev before we check for rt being NULL. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/appletalk/ddp.c')
-rw-r--r--net/appletalk/ddp.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c
index 708e2e0371af..485e35c3b28b 100644
--- a/net/appletalk/ddp.c
+++ b/net/appletalk/ddp.c
@@ -1584,7 +1584,6 @@ static int atalk_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr
1584 1584
1585 if (usat->sat_addr.s_net || usat->sat_addr.s_node == ATADDR_ANYNODE) { 1585 if (usat->sat_addr.s_net || usat->sat_addr.s_node == ATADDR_ANYNODE) {
1586 rt = atrtr_find(&usat->sat_addr); 1586 rt = atrtr_find(&usat->sat_addr);
1587 dev = rt->dev;
1588 } else { 1587 } else {
1589 struct atalk_addr at_hint; 1588 struct atalk_addr at_hint;
1590 1589
@@ -1592,7 +1591,6 @@ static int atalk_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr
1592 at_hint.s_net = at->src_net; 1591 at_hint.s_net = at->src_net;
1593 1592
1594 rt = atrtr_find(&at_hint); 1593 rt = atrtr_find(&at_hint);
1595 dev = rt->dev;
1596 } 1594 }
1597 if (!rt) 1595 if (!rt)
1598 return -ENETUNREACH; 1596 return -ENETUNREACH;