Message383132
C function `subprocess_fork_exec` incorrectly transforms gids from the `extra_groups` argument because it passes `unsigned long*` rather than `pid_t*` into the `_Py_Gid_Converter()`. Assuming that `gid_t` is 32 bit and `unsigned long` is 64 bit (which it often is), `*(gid_t *)p = gid;` then incorrectly overwrites only part of that variable, leaving the other one filled with previous garbage.
I found this on Solaris, but I am pretty sure that this doesn't work correctly on Linux as well, since both use `unsigned int` as `gid_t`. |
|
Date |
User |
Action |
Args |
2020-12-16 10:05:22 | kulikjak | set | recipients:
+ kulikjak |
2020-12-16 10:05:22 | kulikjak | set | messageid: <1608113122.79.0.244683118693.issue42655@roundup.psfhosted.org> |
2020-12-16 10:05:22 | kulikjak | link | issue42655 messages |
2020-12-16 10:05:22 | kulikjak | create | |
|