瀏覽代碼

linux-user: Detect fault in sched_rr_get_interval

Properly detect a fault when attempting to store into an invalid
struct timespec pointer.

Signed-off-by: Tom Musta <tommusta@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Tom Musta 11 年之前
父節點
當前提交
d4290c40a4
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      linux-user/syscall.c

+ 1 - 1
linux-user/syscall.c

@@ -7794,7 +7794,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
             struct timespec ts;
             struct timespec ts;
             ret = get_errno(sched_rr_get_interval(arg1, &ts));
             ret = get_errno(sched_rr_get_interval(arg1, &ts));
             if (!is_error(ret)) {
             if (!is_error(ret)) {
-                host_to_target_timespec(arg2, &ts);
+                ret = host_to_target_timespec(arg2, &ts);
             }
             }
         }
         }
         break;
         break;