소스 검색

net/mlx5e: Fix possible memory leak

'encap_header' is malloced and should be freed before leaving from
the error handling cases, otherwise it will cause memory leak.

Fixes: 232c001398ae ("net/mlx5e: Add support to neighbour update flow")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Wei Yongjun 8 년 전
부모
커밋
27902f0806
1개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. 4 4
      drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

+ 4 - 4
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

@@ -1404,8 +1404,8 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv,
 
 
 	if (!(nud_state & NUD_VALID)) {
 	if (!(nud_state & NUD_VALID)) {
 		neigh_event_send(n, NULL);
 		neigh_event_send(n, NULL);
-		neigh_release(n);
-		return -EAGAIN;
+		err = -EAGAIN;
+		goto out;
 	}
 	}
 
 
 	err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,
 	err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,
@@ -1510,8 +1510,8 @@ static int mlx5e_create_encap_header_ipv6(struct mlx5e_priv *priv,
 
 
 	if (!(nud_state & NUD_VALID)) {
 	if (!(nud_state & NUD_VALID)) {
 		neigh_event_send(n, NULL);
 		neigh_event_send(n, NULL);
-		neigh_release(n);
-		return -EAGAIN;
+		err = -EAGAIN;
+		goto out;
 	}
 	}
 
 
 	err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,
 	err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,