mirror of
https://github.com/python/cpython.git
synced 2025-07-25 12:14:38 +00:00
[3.14] gh-127146: Report uid in Emscripten + node as native uid (GH-136509) (#136699)
Corrects the handling of getuid on emscripten, which was consistently reporting as 0.
(cherry picked from commit e81c4e84b3
)
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
This commit is contained in:
parent
d888f46fba
commit
cdf98c3b7e
4 changed files with 22 additions and 2 deletions
19
Python/emscripten_syscalls.c
Normal file
19
Python/emscripten_syscalls.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
#include "emscripten.h"
|
||||
|
||||
// If we're running in node, report the UID of the user in the native system as
|
||||
// the UID of the user. Since the nodefs will report the uid correctly, if we
|
||||
// don't make getuid report it correctly too we'll see some permission errors.
|
||||
// Normally __syscall_getuid32 is a stub that always returns 0 but it is
|
||||
// defined with weak linkage so we can override it.
|
||||
EM_JS(int, __syscall_getuid32_js, (void), {
|
||||
// If we're in node and we can, report the native uid
|
||||
if (typeof process !== "undefined" && typeof process.getuid === "function") {
|
||||
return process.getuid();
|
||||
}
|
||||
// Fall back to the stub case of returning 0.
|
||||
return 0;
|
||||
})
|
||||
|
||||
int __syscall_getuid32(void) {
|
||||
return __syscall_getuid32_js();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue