Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 159447
b: refs/heads/master
c: 6885ffb
h: refs/heads/master
i:
  159445: fae5f63
  159443: dacda49
  159439: 378f359
v: v3
  • Loading branch information
Mark Smith authored and David S. Miller committed Aug 13, 2009
1 parent 23ecb33 commit c5bfb1c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b91cd1440870f7a0649e570498b7b93caf9f781c
refs/heads/master: 6885ffb3a1b4abf731fd0891a2c1544a83c2651d
25 changes: 14 additions & 11 deletions trunk/net/appletalk/ddp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1400,15 +1400,15 @@ static int atalk_rcv(struct sk_buff *skb, struct net_device *dev,
__u16 len_hops;

if (!net_eq(dev_net(dev), &init_net))
goto freeit;
goto drop;

/* Don't mangle buffer if shared */
if (!(skb = skb_share_check(skb, GFP_ATOMIC)))
goto out;

/* Size check and make sure header is contiguous */
if (!pskb_may_pull(skb, sizeof(*ddp)))
goto freeit;
goto drop;

ddp = ddp_hdr(skb);

Expand All @@ -1426,7 +1426,7 @@ static int atalk_rcv(struct sk_buff *skb, struct net_device *dev,
if (skb->len < sizeof(*ddp) || skb->len < (len_hops & 1023)) {
pr_debug("AppleTalk: dropping corrupted frame (deh_len=%u, "
"skb->len=%u)\n", len_hops & 1023, skb->len);
goto freeit;
goto drop;
}

/*
Expand All @@ -1436,7 +1436,7 @@ static int atalk_rcv(struct sk_buff *skb, struct net_device *dev,
if (ddp->deh_sum &&
atalk_checksum(skb, len_hops & 1023) != ddp->deh_sum)
/* Not a valid AppleTalk frame - dustbin time */
goto freeit;
goto drop;

/* Check the packet is aimed at us */
if (!ddp->deh_dnet) /* Net 0 is 'this network' */
Expand All @@ -1449,7 +1449,7 @@ static int atalk_rcv(struct sk_buff *skb, struct net_device *dev,
* AppleTalk iface
*/
atalk_route_packet(skb, dev, ddp, len_hops, origlen);
goto out;
return NET_RX_SUCCESS;
}

/* if IP over DDP is not selected this code will be optimized out */
Expand All @@ -1465,18 +1465,21 @@ static int atalk_rcv(struct sk_buff *skb, struct net_device *dev,

sock = atalk_search_socket(&tosat, atif);
if (!sock) /* But not one of our sockets */
goto freeit;
goto drop;

/* Queue packet (standard) */
skb->sk = sock;

if (sock_queue_rcv_skb(sock, skb) < 0)
goto freeit;
out:
return 0;
freeit:
goto drop;

return NET_RX_SUCCESS;

drop:
kfree_skb(skb);
goto out;
out:
return NET_RX_DROP;

}

/*
Expand Down

0 comments on commit c5bfb1c

Please sign in to comment.