Commit 92a34ab1 authored by 蒋家盛's avatar 蒋家盛 Committed by Jakub Kicinski
Browse files

net/ncsi: check for error return from call to nla_put_u32



As we can see from the comment of the nla_put() that it could return
-EMSGSIZE if the tailroom of the skb is insufficient.
Therefore, it should be better to check the return value of the
nla_put_u32 and return the error code if error accurs.
Also, there are many other functions have the same problem, and if this
patch is correct, I will commit a new version to fix all.

Fixes: 955dc68c ("net/ncsi: Add generic netlink family")
Signed-off-by: default avatarJiasheng Jiang <jiasheng@iscas.ac.cn>
Link: https://lore.kernel.org/r/20211229032118.1706294-1-jiasheng@iscas.ac.cn


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 168fed98
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -112,7 +112,11 @@ static int ncsi_write_package_info(struct sk_buff *skb,
		pnest = nla_nest_start_noflag(skb, NCSI_PKG_ATTR);
		pnest = nla_nest_start_noflag(skb, NCSI_PKG_ATTR);
		if (!pnest)
		if (!pnest)
			return -ENOMEM;
			return -ENOMEM;
		nla_put_u32(skb, NCSI_PKG_ATTR_ID, np->id);
		rc = nla_put_u32(skb, NCSI_PKG_ATTR_ID, np->id);
		if (rc) {
			nla_nest_cancel(skb, pnest);
			return rc;
		}
		if ((0x1 << np->id) == ndp->package_whitelist)
		if ((0x1 << np->id) == ndp->package_whitelist)
			nla_put_flag(skb, NCSI_PKG_ATTR_FORCED);
			nla_put_flag(skb, NCSI_PKG_ATTR_FORCED);
		cnest = nla_nest_start_noflag(skb, NCSI_PKG_ATTR_CHANNEL_LIST);
		cnest = nla_nest_start_noflag(skb, NCSI_PKG_ATTR_CHANNEL_LIST);