Commit 48f03bdad8b3b0f5a96db45d517149eccd7f4ca8
1 parent
1db20a5295
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
nfnetlink_cttimeout: Stop using NLA_PUT*().
These macros contain a hidden goto, and are thus extremely error prone and make code hard to audit. Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 6 additions and 5 deletions Side-by-side Diff
net/netfilter/nfnetlink_cttimeout.c
... | ... | @@ -170,11 +170,12 @@ |
170 | 170 | nfmsg->version = NFNETLINK_V0; |
171 | 171 | nfmsg->res_id = 0; |
172 | 172 | |
173 | - NLA_PUT_STRING(skb, CTA_TIMEOUT_NAME, timeout->name); | |
174 | - NLA_PUT_BE16(skb, CTA_TIMEOUT_L3PROTO, htons(timeout->l3num)); | |
175 | - NLA_PUT_U8(skb, CTA_TIMEOUT_L4PROTO, timeout->l4proto->l4proto); | |
176 | - NLA_PUT_BE32(skb, CTA_TIMEOUT_USE, | |
177 | - htonl(atomic_read(&timeout->refcnt))); | |
173 | + if (nla_put_string(skb, CTA_TIMEOUT_NAME, timeout->name) || | |
174 | + nla_put_be16(skb, CTA_TIMEOUT_L3PROTO, htons(timeout->l3num)) || | |
175 | + nla_put_u8(skb, CTA_TIMEOUT_L4PROTO, timeout->l4proto->l4proto) || | |
176 | + nla_put_be32(skb, CTA_TIMEOUT_USE, | |
177 | + htonl(atomic_read(&timeout->refcnt)))) | |
178 | + goto nla_put_failure; | |
178 | 179 | |
179 | 180 | if (likely(l4proto->ctnl_timeout.obj_to_nlattr)) { |
180 | 181 | struct nlattr *nest_parms; |