From 96f8ff57025947a6f2afd28ca4b8b6126a15b09d Mon Sep 17 00:00:00 2001 From: Brandon Potter Date: Fri, 17 Feb 2017 12:01:50 -0500 Subject: [PATCH] sim: fix out-of-bounds error in syscall_desc --- src/sim/syscall_desc.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sim/syscall_desc.cc b/src/sim/syscall_desc.cc index 34fb43dae..9251b1c14 100644 --- a/src/sim/syscall_desc.cc +++ b/src/sim/syscall_desc.cc @@ -49,10 +49,11 @@ SyscallDesc::doSyscall(int callnum, LiveProcess *process, ThreadContext *tc) /** * Step through the first six parameters for the system call and * retrieve their values. Note that index is incremented as a - * side-effect of the calling method. + * side-effect of the getSyscallArg method which is why the LHS + * needs the "-1". */ for (int index = 0; index < 6; ) - arg[index] = process->getSyscallArg(tc, index); + arg[index - 1] = process->getSyscallArg(tc, index); /** * Linux supports up to six system call arguments through registers -- 2.30.2