[dpdk-dev] examples/ip_pipeline: fix resource leak

Message ID 20180419110418.8099-1-kevin.laatz@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Cristian Dumitrescu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Kevin Laatz April 19, 2018, 11:04 a.m. UTC
  Closing the fd_server file descriptor on error to fix the resource leak.

Coverity issue: 272587
Fixes: 4bbf8e30aa5e ("examples/ip_pipeline: add CLI interface")
Cc: jasvinder.singh@intel.com

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
---
 examples/ip_pipeline/conn.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Jasvinder Singh April 19, 2018, 3:32 p.m. UTC | #1
> -----Original Message-----
> From: Laatz, Kevin
> Sent: Thursday, April 19, 2018 12:04 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Laatz, Kevin
> <kevin.laatz@intel.com>; Singh, Jasvinder <jasvinder.singh@intel.com>
> Subject: [PATCH] examples/ip_pipeline: fix resource leak
> 
> Closing the fd_server file descriptor on error to fix the resource leak.
> 
> Coverity issue: 272587
> Fixes: 4bbf8e30aa5e ("examples/ip_pipeline: add CLI interface")
> Cc: jasvinder.singh@intel.com
> 
> Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
> ---
>  examples/ip_pipeline/conn.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/examples/ip_pipeline/conn.c b/examples/ip_pipeline/conn.c index
> 9338942..6b08e9e 100644
> --- a/examples/ip_pipeline/conn.c
> +++ b/examples/ip_pipeline/conn.c
> @@ -96,12 +96,14 @@ conn_init(struct conn_params *p)
>  		sizeof(server_address));
>  	if (status == -1) {
>  		conn_free(conn);
> +		close(fd_server);
>  		return NULL;
>  	}
> 
>  	status = listen(fd_server, 16);
>  	if (status == -1) {
>  		conn_free(conn);
> +		close(fd_server);
>  		return NULL;
>  	}
> 
> @@ -109,6 +111,7 @@ conn_init(struct conn_params *p)
>  	fd_client_group = epoll_create(1);
>  	if (fd_client_group == -1) {
>  		conn_free(conn);
> +		close(fd_server);
>  		return NULL;
>  	}
> 
> --
> 2.9.5

Reviewed-by: Jasvinder Singh <jasvinder.singh@intel.com>
  

Patch

diff --git a/examples/ip_pipeline/conn.c b/examples/ip_pipeline/conn.c
index 9338942..6b08e9e 100644
--- a/examples/ip_pipeline/conn.c
+++ b/examples/ip_pipeline/conn.c
@@ -96,12 +96,14 @@  conn_init(struct conn_params *p)
 		sizeof(server_address));
 	if (status == -1) {
 		conn_free(conn);
+		close(fd_server);
 		return NULL;
 	}
 
 	status = listen(fd_server, 16);
 	if (status == -1) {
 		conn_free(conn);
+		close(fd_server);
 		return NULL;
 	}
 
@@ -109,6 +111,7 @@  conn_init(struct conn_params *p)
 	fd_client_group = epoll_create(1);
 	if (fd_client_group == -1) {
 		conn_free(conn);
+		close(fd_server);
 		return NULL;
 	}