linux-user: Remove dead error-checking code
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 19 Oct 2018 16:17:15 +0000 (17:17 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Mon, 12 Nov 2018 14:43:07 +0000 (15:43 +0100)
Remove some dead code spotted by Coverity (CID 1009855,
13908541390847). The underlying cause in all these cases
is the same: QEMU's put_user operations can't result in
errors, but the kernel's equivalent does. So when code
was copied from the kernel signal-frame-setup/teardown
code, checks on error flags that were needed in the kernel
became dead code for us.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20181019161715.12122-1-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
linux-user/m68k/signal.c
linux-user/sh4/signal.c
linux-user/sparc/signal.c

index 38bd77ec1608e5a76ff57f987213ac1d9b0191d1..49ff87c77bce6dc125a5b616a12da834d9019e73 100644 (file)
@@ -334,9 +334,6 @@ void setup_rt_frame(int sig, struct target_sigaction *ka,
                (uint32_t *)(frame->retcode + 0));
     __put_user(0x4e40, (uint16_t *)(frame->retcode + 4));
 
-    if (err)
-        goto give_sigsegv;
-
     /* Set up to return from userspace */
 
     env->aregs[7] = frame_addr;
index c6752baa7ee793c05fe294a80e04194bcf1c698a..cc89a48ff8bc78a62e2fc6f2498b97d303c1dc0e 100644 (file)
@@ -279,7 +279,6 @@ long do_sigreturn(CPUSH4State *regs)
     sigset_t blocked;
     target_sigset_t target_set;
     int i;
-    int err = 0;
 
     frame_addr = regs->gregs[15];
     trace_user_do_sigreturn(regs, frame_addr);
@@ -292,9 +291,6 @@ long do_sigreturn(CPUSH4State *regs)
         __get_user(target_set.sig[i], &frame->extramask[i - 1]);
     }
 
-    if (err)
-        goto badframe;
-
     target_to_host_sigset_internal(&blocked, &target_set);
     set_sigmask(&blocked);
 
index e44e99993c6828169f4cdcd96c9b0a377cf07844..295e415b1e67fd6945ca242b7743442eac3a926f 100644 (file)
@@ -256,8 +256,6 @@ void setup_frame(int sig, struct target_sigaction *ka,
         /* t 0x10 */
         val32 = 0x91d02010;
         __put_user(val32, &sf->insns[1]);
-        if (err)
-            goto sigsegv;
     }
     unlock_user(sf, sf_addr, sizeof(struct target_signal_frame));
     return;