1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-03 06:46:39 -08:00

core: limit the LSan shenanigans to PID 1

Addresses https://github.com/systemd/systemd/pull/29194#pullrequestreview-1630530753.
Follow-up to ae5ce7e.
This commit is contained in:
Frantisek Sumsal 2023-09-18 12:34:42 +02:00
parent bcf3acea75
commit 7b19bd60cf

View File

@ -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)