Hi Helge, On 1/22/23 20:31, Helge Kreutzmann wrote:
Without further ado, the following was found: Issue: Linux 2.24 → Glibc 2.24
Fixed. Thanks, Alex
"From glibc 2.3.4 up to and including Linux 2.24, the glibc wrapper function" "for B<getpid>() cached PIDs, with the goal of avoiding additional system" "calls when a process calls B<getpid>() repeatedly. Normally this caching" "was invisible, but its correct operation relied on support in the wrapper" "functions for B<fork>(2), B<vfork>(2), and B<clone>(2): if an application" "bypassed the glibc wrappers for these system calls by using B<syscall>(2)," "then a call to B<getpid>() in the child would return the wrong value (to be" "precise: it would return the PID of the parent process). In addition, there" "were cases where B<getpid>() could return the wrong value even when" "invoking B<clone>(2) via the glibc wrapper function. (For a discussion of" "one such case, see BUGS in B<clone>(2).) Furthermore, the complexity of the" "caching code had been the source of a few bugs within glibc over the years."
-- <http://www.alejandro-colomar.es/>
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature