|
From: Philippe W. <phi...@so...> - 2019-09-10 21:07:32
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=53cceb2ac2c8f92e875b06c2017e707295e3e96b commit 53cceb2ac2c8f92e875b06c2017e707295e3e96b Author: Philippe Waroquiers <phi...@sk...> Date: Tue Sep 10 22:47:58 2019 +0200 Have VG_(is_in_syscall) return False if no syscall was done yet. As when no syscall was done yet, the syscallInfo pointer is still null, we return False if this is null, rather than SEGV due to null ptr. This can at least happen when reporting the scheduler status before the first syscall was done. Diff: --- coregrind/m_syswrap/syswrap-main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/syswrap-main.c b/coregrind/m_syswrap/syswrap-main.c index a06234e..868645e 100644 --- a/coregrind/m_syswrap/syswrap-main.c +++ b/coregrind/m_syswrap/syswrap-main.c @@ -1694,7 +1694,7 @@ void VG_(clear_syscallInfo) ( ThreadId tid ) Bool VG_(is_in_syscall) ( ThreadId tid ) { vg_assert(tid >= 0 && tid < VG_N_THREADS); - return (syscallInfo[tid].status.what != SsIdle); + return (syscallInfo && syscallInfo[tid].status.what != SsIdle); } Word VG_(is_in_syscall_no) (ThreadId tid ) |