nf_conntrack_proto_gre: 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>
This commit is contained in:
David S. Miller 2012-04-01 18:52:03 -04:00
parent 5e8d1eb5fb
commit 242ddfc014

View file

@ -321,10 +321,11 @@ gre_timeout_obj_to_nlattr(struct sk_buff *skb, const void *data)
{ {
const unsigned int *timeouts = data; const unsigned int *timeouts = data;
NLA_PUT_BE32(skb, CTA_TIMEOUT_GRE_UNREPLIED, if (nla_put_be32(skb, CTA_TIMEOUT_GRE_UNREPLIED,
htonl(timeouts[GRE_CT_UNREPLIED] / HZ)); htonl(timeouts[GRE_CT_UNREPLIED] / HZ)) ||
NLA_PUT_BE32(skb, CTA_TIMEOUT_GRE_REPLIED, nla_put_be32(skb, CTA_TIMEOUT_GRE_REPLIED,
htonl(timeouts[GRE_CT_REPLIED] / HZ)); htonl(timeouts[GRE_CT_REPLIED] / HZ)))
goto nla_put_failure;
return 0; return 0;
nla_put_failure: nla_put_failure: