3 ms·
> It doesn't, though? At least not on x86 [0] [1]. Stuff like this is why I'm inclined to regard the libc rules as fictions of dubious utility. Hrm, interestin
by the8472 2y ago
> It doesn't, though? At least not on x86 [0] [1]. Stuff like this is why I'm inclined to regard the libc rules as fictions of dubious utility.
Hrm, interesting. At least the musl author claimed[0] that using clone invalidates the thread state in a way that (presumably) vfork() wouldn't.
> I mean, FUSE is by no means the only offender with syscall return values. Before execve()ing your program, I can install a seccomp filter that makes any syscall return any errno.
I would put Seccomp and FUSE are different buckets. Seccomp is more like ptrace, it's hooking right into the process like a debugger. If it's actively sabotaging your process you have already lost, it could make mmap return the same pointer twice for example.
FUSE is different, the kernel sits between the process and the fuse server. So the kernel is in a position to uphold its API contract.
[0] https://github.com/rust-lang/rust/issues/89522#issuecomment-945840398 https://github.com/rust-lang/rust/issues/89522#issuecomment-...