net/mlx5: fix socket close
authorMichael Baum <michaelba@mellanox.com>
Wed, 27 May 2020 08:37:55 +0000 (08:37 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 2 Jun 2020 14:06:23 +0000 (16:06 +0200)
commit50181d99656490844c2565560c4b5eba9c657979
tree08d3fa05a7b590dce3d894398710b9af99b022f3
parenta943102fc6d353f89968a1d41dce7c98aa21ea69
net/mlx5: fix socket close

The mlx5_pmd_socket_handle function calls the accept function that
returns the socket descriptor into the conn_sock variable. The socket
descriptor value can be 0 (according to accept API) or positive and so
immediately after calling the function it checks whether conn_sock < 0.
Later in the function when other things fail it jumps to the error label
and release previously allocated resources (such as socket or file).

During the resource release, it checks whether the variable conn_sock
containing the socket descriptor is positive and if it is, it releases
it. However, in this check it misses the case where conn_sock == 0, in
this case the socket will not be released and there will be a Resource
leak.

Extend the close condition for 0 value too.

Fixes: e6cdc54cc0ef ("net/mlx5: add socket server for external tools")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
drivers/net/mlx5/mlx5_socket.c