On 3/2/26 7:15 AM, Warner Losh wrote:


On Mon, Mar 2, 2026 at 7:03 AM Florian Hofhammer <[email protected] <mailto:[email protected]>> wrote:

    The syscall emulation code previously wasn't interruptible via
    cpu_loop_exit(), as this construct relies on a longjmp target that
    is not
    live anymore in the syscall handling code. Consequently, longjmp() would
    operate on a (potentially overwritten) stale jump buffer. This patch
    adds an additional
    setjmp and the necessary handling around it to make longjmp() (and by
    proxy cpu_loop_exit() safe to call even within a syscall context.

    Signed-off-by: Florian Hofhammer <[email protected]
    <mailto:[email protected]>>
    ---


So bsd-user would need something similar, I'd think. But it still uses the older-style TARGET_EJUSTRETURN. With half of the archs still out of tree, I'm not entirely
sure the best way to approach this.

The code does what you say, which is good, but there may be some subtle
reason to do something else.

Reviewed-by: Warner Losh <[email protected] <mailto:[email protected]>>


At the moment, syscall filtering is not available for bsd-user, it's (sadly) only implemented for linux-user. Which implies that current changes are not needed for bsd-user neither, since they can't be tested anyway.

Regards,
Pierrick

Reply via email to