forked from Minki/linux
mctp: add address validity checking for packet receive
This change adds some basic sanity checks for the source and dest headers of packets on initial receive. Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
cb196b7259
commit
86cdfd63f2
@ -1092,6 +1092,17 @@ static int mctp_pkttype_receive(struct sk_buff *skb, struct net_device *dev,
|
||||
if (mh->ver < MCTP_VER_MIN || mh->ver > MCTP_VER_MAX)
|
||||
goto err_drop;
|
||||
|
||||
/* source must be valid unicast or null; drop reserved ranges and
|
||||
* broadcast
|
||||
*/
|
||||
if (!(mctp_address_unicast(mh->src) || mctp_address_null(mh->src)))
|
||||
goto err_drop;
|
||||
|
||||
/* dest address: as above, but allow broadcast */
|
||||
if (!(mctp_address_unicast(mh->dest) || mctp_address_null(mh->dest) ||
|
||||
mctp_address_broadcast(mh->dest)))
|
||||
goto err_drop;
|
||||
|
||||
/* MCTP drivers must populate halen/haddr */
|
||||
if (dev->type == ARPHRD_MCTP) {
|
||||
cb = mctp_cb(skb);
|
||||
|
Loading…
Reference in New Issue
Block a user