From 4c083e99e6b15242b34496037fb6402317227ff5 Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Sun, 8 Oct 2017 13:53:31 +0200 Subject: [PATCH] Fix CID 187210. --- 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 3f95500a..6f2647b1 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -4670,16 +4670,24 @@ static int syscall_open(struct state *state, struct syscall_spec *syscall, result = open(name, flags); - 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_fd = result; - if (get_s32(syscall->result, &script_fd, error)) + if (get_s32(syscall->result, &script_fd, error)) { + close(live_fd); return STATUS_ERR; + } if (!insert_new_socket(state, 0, 0, - script_fd, live_fd, error)) + script_fd, live_fd, error)) { + close(live_fd); return STATUS_ERR; + } } return STATUS_OK; -- GitLab