diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2018-04-24 15:30:59 +0200 |
---|---|---|
committer | Milian Wolff <mail@milianw.de> | 2018-05-04 23:13:26 +0200 |
commit | b256722d49a63719c69c0416eba9163a4d069584 (patch) | |
tree | e825ab16a97dca077adf9719a3865bce020845e1 | |
parent | 2bb51aa4fd46a61c4702f05a5c93e811a5e112ef (diff) | |
download | libunwind-b256722d49a63719c69c0416eba9163a4d069584.tar.gz |
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)
-rw-r--r-- | src/x86_64/Ginit.c | 7 |
1 files 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); } |