From b256722d49a63719c69c0416eba9163a4d069584 Mon Sep 17 00:00:00 2001 From: Milian Wolff Date: Tue, 24 Apr 2018 15:30:59 +0200 Subject: [PATCH] Do not try to close invalid fds This was found by Valgrind: ==8330== Warning: invalid file descriptor -1 in syscall close() ==8330== at 0x504B9F4: close (in /usr/lib/libpthread-2.26.so) ==8330== by 0x40914DA: open_pipe (Ginit.c:82) ==8330== by 0x40914DA: _ULx86_64_init_mem_validate (Ginit.c:154) ==8330== by 0x4090CFE: _ULx86_64_init (Gglobal.c:93) ==8330== by 0x4090A8C: _ULx86_64_set_caching_policy (Gset_caching_policy.c:32) --- src/x86_64/Ginit.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/x86_64/Ginit.c b/src/x86_64/Ginit.c index b7e8e462..28e096fc 100644 --- a/src/x86_64/Ginit.c +++ b/src/x86_64/Ginit.c @@ -78,9 +78,10 @@ static int mem_validate_pipe[2] = {-1, -1}; static inline void open_pipe (void) { - /* ignore errors for closing invalid fd's */ - close (mem_validate_pipe[0]); - close (mem_validate_pipe[1]); + if (mem_validate_pipe[0] != -1) + close (mem_validate_pipe[0]); + if (mem_validate_pipe[1] != -1) + close (mem_validate_pipe[1]); pipe2 (mem_validate_pipe, O_CLOEXEC | O_NONBLOCK); }