From 4fb1278db712b711973bf787b6504a9dca79759e Mon Sep 17 00:00:00 2001 From: Don Porter Date: Mon, 28 Jan 2019 11:29:01 -0500 Subject: [PATCH] [LibOS] Add a check to sched_getaffinity that the user_mask_ptr is a valid user address. This will make LTP test sched_getaffinity01,5 pass reliably. --- LibOS/shim/src/sys/shim_sched.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/LibOS/shim/src/sys/shim_sched.c b/LibOS/shim/src/sys/shim_sched.c index f36f8e12..35dcc2ed 100644 --- a/LibOS/shim/src/sys/shim_sched.c +++ b/LibOS/shim/src/sys/shim_sched.c @@ -40,6 +40,9 @@ int shim_do_sched_getaffinity (pid_t pid, size_t len, __kernel_cpu_set_t * user_mask_ptr) { int ncpus = PAL_CB(cpu_info.cpu_num); + // Check that user_mask_ptr is valid; if not, should return -EFAULT + if (test_user_memory(user_mask_ptr, len, 1)) + return -EFAULT; memset(user_mask_ptr, 0, len); for (int i = 0 ; i < ncpus ; i++) ((uint8_t *) user_mask_ptr)[i / 8] |= 1 << (i % 8);