Skip to content

Commit

Permalink
econet: Fix crash in aun_incoming().
Browse files Browse the repository at this point in the history
Unconditional use of skb->dev won't work here,
try to fetch the econet device via skb_dst()->dev
instead.

Suggested by Eric Dumazet.

Reported-by: Nelson Elhage <nelhage@ksplice.com>
Tested-by: Nelson Elhage <nelhage@ksplice.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
davem330 committed Dec 9, 2010
1 parent f198725 commit 4e085e7
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion net/econet/af_econet.c
Original file line number Diff line number Diff line change
Expand Up @@ -851,9 +851,13 @@ static void aun_incoming(struct sk_buff *skb, struct aunhdr *ah, size_t len)
{
struct iphdr *ip = ip_hdr(skb);
unsigned char stn = ntohl(ip->saddr) & 0xff;
struct dst_entry *dst = skb_dst(skb);
struct ec_device *edev = NULL;
struct sock *sk = NULL;
struct sk_buff *newskb;
struct ec_device *edev = skb->dev->ec_ptr;

if (dst)
edev = dst->dev->ec_ptr;

if (! edev)
goto bad;
Expand Down

0 comments on commit 4e085e7

Please sign in to comment.