mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-23 01:40:30 +00:00
can: 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:
parent
4e24ffa4d9
commit
31e0e32889
@ -687,18 +687,19 @@ static int can_fill_info(struct sk_buff *skb, const struct net_device *dev)
|
|||||||
|
|
||||||
if (priv->do_get_state)
|
if (priv->do_get_state)
|
||||||
priv->do_get_state(dev, &state);
|
priv->do_get_state(dev, &state);
|
||||||
NLA_PUT_U32(skb, IFLA_CAN_STATE, state);
|
if (nla_put_u32(skb, IFLA_CAN_STATE, state) ||
|
||||||
NLA_PUT(skb, IFLA_CAN_CTRLMODE, sizeof(cm), &cm);
|
nla_put(skb, IFLA_CAN_CTRLMODE, sizeof(cm), &cm) ||
|
||||||
NLA_PUT_U32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms);
|
nla_put_u32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms) ||
|
||||||
NLA_PUT(skb, IFLA_CAN_BITTIMING,
|
nla_put(skb, IFLA_CAN_BITTIMING,
|
||||||
sizeof(priv->bittiming), &priv->bittiming);
|
sizeof(priv->bittiming), &priv->bittiming) ||
|
||||||
NLA_PUT(skb, IFLA_CAN_CLOCK, sizeof(cm), &priv->clock);
|
nla_put(skb, IFLA_CAN_CLOCK, sizeof(cm), &priv->clock) ||
|
||||||
if (priv->do_get_berr_counter && !priv->do_get_berr_counter(dev, &bec))
|
(priv->do_get_berr_counter &&
|
||||||
NLA_PUT(skb, IFLA_CAN_BERR_COUNTER, sizeof(bec), &bec);
|
!priv->do_get_berr_counter(dev, &bec) &&
|
||||||
if (priv->bittiming_const)
|
nla_put(skb, IFLA_CAN_BERR_COUNTER, sizeof(bec), &bec)) ||
|
||||||
NLA_PUT(skb, IFLA_CAN_BITTIMING_CONST,
|
(priv->bittiming_const &&
|
||||||
sizeof(*priv->bittiming_const), priv->bittiming_const);
|
nla_put(skb, IFLA_CAN_BITTIMING_CONST,
|
||||||
|
sizeof(*priv->bittiming_const), priv->bittiming_const)))
|
||||||
|
goto nla_put_failure;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
nla_put_failure:
|
nla_put_failure:
|
||||||
@ -714,9 +715,9 @@ static int can_fill_xstats(struct sk_buff *skb, const struct net_device *dev)
|
|||||||
{
|
{
|
||||||
struct can_priv *priv = netdev_priv(dev);
|
struct can_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
NLA_PUT(skb, IFLA_INFO_XSTATS,
|
if (nla_put(skb, IFLA_INFO_XSTATS,
|
||||||
sizeof(priv->can_stats), &priv->can_stats);
|
sizeof(priv->can_stats), &priv->can_stats))
|
||||||
|
goto nla_put_failure;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
nla_put_failure:
|
nla_put_failure:
|
||||||
|
Loading…
Reference in New Issue
Block a user