[Bug 268666] syslog(3) prints parent's pid after fork()
Date: Sat, 31 Dec 2022 10:16:09 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268666 Bug ID: 268666 Summary: syslog(3) prints parent's pid after fork() Product: Base System Version: 12.4-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: fjo@ogris.de $ cat t.c #include <unistd.h> #include <syslog.h> int main() { openlog("test", LOG_PERROR, LOG_USER); syslog(LOG_INFO, "before fork: %d\n", getpid()); fork(); syslog(LOG_INFO, "after fork: %d\n", getpid()); return 0; } $ cc -o t t.c On 12.4-RELEASE (note last line): $ ./t test 55317 - - before fork: 55317 test 55317 - - after fork: 55317 test 55317 - - after fork: 55318 On 13.1-RELEASE-p3: $ ./t test 16590 - - before fork: 16590 test 16590 - - after fork: 16590 test 16591 - - after fork: 16591 Suggested fix for 12.4: Make LogPid a local variable inside vsyslog1(), let parse_tag() return either the parsed pid or -1, and assign LogPid either that return value or getpid(). -- You are receiving this mail because: You are the assignee for the bug.