Close ofd in the error path and at the end of the function. Fixes a RESOURCE_LEAK error (CWE-772) Signed-off-by: Jerome Marchand <jmarchan@xxxxxxxxxx> --- tracecmd/trace-listen.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tracecmd/trace-listen.c b/tracecmd/trace-listen.c index 5894a92d..09f442c7 100644 --- a/tracecmd/trace-listen.c +++ b/tracecmd/trace-listen.c @@ -696,8 +696,10 @@ static int process_client(struct tracecmd_msg_handle *msg_handle, ofd = create_client_file(node, port); pid_array = create_all_readers(node, port, pagesize, msg_handle); - if (!pid_array) + if (!pid_array) { + close(ofd); return -ENOMEM; + } /* on signal stop this msg */ stop_msg_handle = msg_handle; @@ -725,6 +727,7 @@ static int process_client(struct tracecmd_msg_handle *msg_handle, msg_handle->version < V3_PROTOCOL); destroy_all_readers(cpus, pid_array, node, port); + close(ofd); return ret; } -- 2.44.0