diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2018-09-05 16:55:10 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-09-06 07:32:21 +0200 |
commit | 222440996d6daf635bed6cb35041be22ede3e8a0 (patch) | |
tree | 5ed476604db578b0c0d1f0bdc2bfc7cd154f7aff /net/iucv | |
parent | net/sched: fix memory leak in act_tunnel_key_init() (diff) | |
download | linux-222440996d6daf635bed6cb35041be22ede3e8a0.tar.xz linux-222440996d6daf635bed6cb35041be22ede3e8a0.zip |
net/af_iucv: drop inbound packets with invalid flags
Inbound packets may have any combination of flag bits set in their iucv
header. If we don't know how to handle a specific combination, drop the
skb instead of leaking it.
To clarify what error is returned in this case, replace the hard-coded
0 with the corresponding macro.
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/iucv')
-rw-r--r-- | net/iucv/af_iucv.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index a21d8ed0a325..01000c14417f 100644 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c @@ -2155,8 +2155,8 @@ static int afiucv_hs_rcv(struct sk_buff *skb, struct net_device *dev, struct sock *sk; struct iucv_sock *iucv; struct af_iucv_trans_hdr *trans_hdr; + int err = NET_RX_SUCCESS; char nullstring[8]; - int err = 0; if (skb->len < (ETH_HLEN + sizeof(struct af_iucv_trans_hdr))) { WARN_ONCE(1, "AF_IUCV too short skb, len=%d, min=%d", @@ -2254,7 +2254,7 @@ static int afiucv_hs_rcv(struct sk_buff *skb, struct net_device *dev, err = afiucv_hs_callback_rx(sk, skb); break; default: - ; + kfree_skb(skb); } return err; |