From 72eb3cb09e47cfbe29831b5b4b75e7cf385b5b98 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Mon, 24 Nov 2003 04:00:19 -0800 Subject: [PATCH] [ECONET]: Do not leak SKBs if ec_queue_packet() fails. Also, make sure NET_RX_DROP is returned if we did not accept the packet. --- net/econet/af_econet.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/net/econet/af_econet.c b/net/econet/af_econet.c index c81486686759b..5671533fd03bf 100644 --- a/net/econet/af_econet.c +++ b/net/econet/af_econet.c @@ -1041,12 +1041,15 @@ static int econet_rcv(struct sk_buff *skb, struct net_device *dev, struct packet if (!sk) goto drop; - return ec_queue_packet(sk, skb, edev->net, hdr->src_stn, hdr->cb, - hdr->port); + if (ec_queue_packet(sk, skb, edev->net, hdr->src_stn, hdr->cb, + hdr->port)) + goto drop; + + return 0; drop: kfree_skb(skb); - return 0; + return NET_RX_DROP; } static struct packet_type econet_packet_type = { -- 2.53.0