From: Andreas Schwab Date: Tue, 2 Jul 2013 13:04:12 +0000 (+0100) Subject: linux-user: fix signal number range check X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=167c50d8f94e0ffb880aa5cd2a232a3f32f0df1d;p=qmiga%2Fqemu.git linux-user: fix signal number range check When translating between host and target signal numbers keep negative numbers unchanged, avoiding access beyond array bounds. Signed-off-by: Andreas Schwab Reviewed-by: Peter Maydell Message-id: 878v2b8sek.fsf@igel.home --- diff --git a/linux-user/signal.c b/linux-user/signal.c index c4e20dc8b9..d84e189bc8 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -102,14 +102,14 @@ static inline int sas_ss_flags(unsigned long sp) int host_to_target_signal(int sig) { - if (sig >= _NSIG) + if (sig < 0 || sig >= _NSIG) return sig; return host_to_target_signal_table[sig]; } int target_to_host_signal(int sig) { - if (sig >= _NSIG) + if (sig < 0 || sig >= _NSIG) return sig; return target_to_host_signal_table[sig]; }