From: Frantisek Sumsal Date: Mon, 18 Sep 2023 10:34:42 +0000 (+0200) Subject: core: limit the LSan shenanigans to PID 1 X-Git-Tag: v255-rc1~511^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7b19bd60cf1ec57a8bd8da1152eae3cbcdd4db34;p=thirdparty%2Fsystemd.git core: limit the LSan shenanigans to PID 1 Addresses https://github.com/systemd/systemd/pull/29194#pullrequestreview-1630530753. Follow-up to ae5ce7e. --- diff --git a/src/core/main.c b/src/core/main.c index ffdfea8a2e6..21582ddd0c5 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -3185,13 +3185,15 @@ finish: * LSan check would not print any actionable information and would just crash * PID 1. To make this a bit more helpful, let's try to open /dev/console, * and if we succeed redirect LSan's report there. */ + if (getpid_cached() == 1) { + _cleanup_close_ int tty_fd = -EBADF; - int tty_fd = open_terminal("/dev/console", O_WRONLY|O_NOCTTY|O_CLOEXEC); - if (tty_fd >= 0) - __sanitizer_set_report_fd((void*) (intptr_t) tty_fd); + tty_fd = open_terminal("/dev/console", O_WRONLY|O_NOCTTY|O_CLOEXEC); + if (tty_fd >= 0) + __sanitizer_set_report_fd((void*) (intptr_t) tty_fd); - __lsan_do_leak_check(); - tty_fd = safe_close(tty_fd); + __lsan_do_leak_check(); + } #endif if (r < 0)