From: Brandon Potter Date: Fri, 17 Feb 2017 17:01:50 +0000 (-0500) Subject: sim: fix out-of-bounds error in syscall_desc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=96f8ff57025947a6f2afd28ca4b8b6126a15b09d;p=gem5.git sim: fix out-of-bounds error in syscall_desc --- 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