net/mlx5e: check return value of rhashtable_init
When rhashtable_init() fails, it returns -EINVAL. However, since error return value of rhashtable_init is not checked, it can cause use of uninitialized pointers. So, fix unhandled errors of rhashtable_init. Signed-off-by: MichelleJin <shjy180909@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a17aafa3a4
commit
d7cade5137
@ -2127,12 +2127,20 @@ mlx5_tc_ct_init(struct mlx5e_priv *priv, struct mlx5_fs_chains *chains,
|
|||||||
|
|
||||||
ct_priv->post_act = post_act;
|
ct_priv->post_act = post_act;
|
||||||
mutex_init(&ct_priv->control_lock);
|
mutex_init(&ct_priv->control_lock);
|
||||||
rhashtable_init(&ct_priv->zone_ht, &zone_params);
|
if (rhashtable_init(&ct_priv->zone_ht, &zone_params))
|
||||||
rhashtable_init(&ct_priv->ct_tuples_ht, &tuples_ht_params);
|
goto err_ct_zone_ht;
|
||||||
rhashtable_init(&ct_priv->ct_tuples_nat_ht, &tuples_nat_ht_params);
|
if (rhashtable_init(&ct_priv->ct_tuples_ht, &tuples_ht_params))
|
||||||
|
goto err_ct_tuples_ht;
|
||||||
|
if (rhashtable_init(&ct_priv->ct_tuples_nat_ht, &tuples_nat_ht_params))
|
||||||
|
goto err_ct_tuples_nat_ht;
|
||||||
|
|
||||||
return ct_priv;
|
return ct_priv;
|
||||||
|
|
||||||
|
err_ct_tuples_nat_ht:
|
||||||
|
rhashtable_destroy(&ct_priv->ct_tuples_ht);
|
||||||
|
err_ct_tuples_ht:
|
||||||
|
rhashtable_destroy(&ct_priv->zone_ht);
|
||||||
|
err_ct_zone_ht:
|
||||||
err_ct_nat_tbl:
|
err_ct_nat_tbl:
|
||||||
mlx5_chains_destroy_global_table(chains, ct_priv->ct);
|
mlx5_chains_destroy_global_table(chains, ct_priv->ct);
|
||||||
err_ct_tbl:
|
err_ct_tbl:
|
||||||
|
Loading…
Reference in New Issue
Block a user