]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sandbox: don't set SA_NODEFER in signal handler
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Mon, 5 Jul 2021 17:43:00 +0000 (19:43 +0200)
committerSimon Glass <sjg@chromium.org>
Wed, 21 Jul 2021 16:27:35 +0000 (10:27 -0600)
The sandbox can handle signals. Due to a damaged global data pointer
additional exceptions in the signal handler may occur leading to an endless
loop. In this case leave the handling of the secondary exception to the
operating system.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/os.c

index a8aa9def27f2c9bd82eabc143d5e106e4f665b25..1103530941b3b4c8016d8c9018c7574ee3e7b603 100644 (file)
@@ -226,7 +226,7 @@ int os_setup_signal_handlers(void)
 
        act.sa_sigaction = os_signal_handler;
        sigemptyset(&act.sa_mask);
-       act.sa_flags = SA_SIGINFO | SA_NODEFER;
+       act.sa_flags = SA_SIGINFO;
        if (sigaction(SIGILL, &act, NULL) ||
            sigaction(SIGBUS, &act, NULL) ||
            sigaction(SIGSEGV, &act, NULL))