From dc6d1434a727185cd082ebc6c38b1ba593311c96 Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Sun, 8 Oct 2017 13:56:01 +0200 Subject: [PATCH] Fix CID 187177. --- gtests/net/packetdrill/run_system_call.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index 6f2647b1..9b841d1f 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -2156,18 +2156,26 @@ static int syscall_accept(struct state *state, struct syscall_spec *syscall, result = accept(live_fd, (struct sockaddr *)&live_addr, &live_addrlen); - if (end_syscall(state, syscall, CHECK_FD, result, error)) + if (end_syscall(state, syscall, CHECK_FD, result, error)) { + if (result >= 0) { + close(result); + } return STATUS_ERR; + } if (result >= 0) { live_accepted_fd = result; - if (get_s32(syscall->result, &script_accepted_fd, error)) + if (get_s32(syscall->result, &script_accepted_fd, error)) { + close(live_accepted_fd); return STATUS_ERR; + } if (run_syscall_accept( state, script_accepted_fd, live_accepted_fd, (struct sockaddr *)&live_addr, live_addrlen, - error)) + error)) { + close(live_accepted_fd); return STATUS_ERR; + } } return STATUS_OK; -- GitLab