diff --git a/src/bin/debug/strace/strace.cpp b/src/bin/debug/strace/strace.cpp index a19fe0c9e6..25a436b55f 100644 --- a/src/bin/debug/strace/strace.cpp +++ b/src/bin/debug/strace/strace.cpp @@ -686,7 +686,12 @@ main(int argc, const char *const *argv) Team* team = it->second; MemoryReader& memoryReader = team->GetMemoryReader(); - int32 syscallNumber = message.post_syscall.syscall; + uint32 syscallNumber = message.post_syscall.syscall; + if (syscallNumber >= sSyscallVector.size()) { + fprintf(stderr, "%s: invalid syscall %" B_PRIu32 " attempted\n", + kCommandName, syscallNumber); + break; + } Syscall* syscall = sSyscallVector[syscallNumber]; if (stats)