diff options
author | Samasth Norway Ananda <[email protected]> | 2024-05-09 17:34:24 -0700 |
---|---|---|
committer | Arnaldo Carvalho de Melo <[email protected]> | 2024-05-10 11:28:11 -0300 |
commit | 09541603462c399c7408d50295db99b4b8042eaa (patch) | |
tree | f687f6ec3791e71bd553c2d132e7cdf106484a8f | |
parent | 230a7a71f92212e723fa435d4ca5922de33ec88a (diff) |
perf daemon: Fix file leak in daemon_session__control
The open() function returns -1 on error.
The 'control' and 'ack' file descriptors are both initialized with
open() and further validated with 'if' statement.
'if (!control)' would evaluate to 'true' if returned value on error were
'0' but it is actually '-1'.
Fixes: edcaa47958c7438b ("perf daemon: Add 'ping' command")
Signed-off-by: Samasth Norway Ananda <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Ian Rogers <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Mark Rutland <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
-rw-r--r-- | tools/perf/builtin-daemon.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/perf/builtin-daemon.c b/tools/perf/builtin-daemon.c index 83954af36753..de76bbc50bfb 100644 --- a/tools/perf/builtin-daemon.c +++ b/tools/perf/builtin-daemon.c @@ -523,7 +523,7 @@ static int daemon_session__control(struct daemon_session *session, session->base, SESSION_CONTROL); control = open(control_path, O_WRONLY|O_NONBLOCK); - if (!control) + if (control < 0) return -1; if (do_ack) { @@ -532,7 +532,7 @@ static int daemon_session__control(struct daemon_session *session, session->base, SESSION_ACK); ack = open(ack_path, O_RDONLY, O_NONBLOCK); - if (!ack) { + if (ack < 0) { close(control); return -1; } |