From 51051c56d36306e32ee363c0d15078b0e8082fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Mon, 8 Jan 2018 21:39:37 +0100 Subject: [PATCH] kernel: wait_for_objects: read the user sigmask with user_memcpy() --- src/system/kernel/wait_for_objects.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/wait_for_objects.cpp b/src/system/kernel/wait_for_objects.cpp index 4fab084c9c..dbb6ffdb54 100644 --- a/src/system/kernel/wait_for_objects.cpp +++ b/src/system/kernel/wait_for_objects.cpp @@ -963,8 +963,11 @@ _user_select(int numFDs, fd_set *userReadSet, fd_set *userWriteSet, } } - if (userSigMask != NULL) - sigMask = *userSigMask; + if (userSigMask != NULL + && user_memcpy(&sigMask, userSigMask, sizeof(sigMask)) < B_OK) { + result = B_BAD_ADDRESS; + goto err; + } result = common_select(numFDs, readSet, writeSet, errorSet, timeout, userSigMask ? &sigMask : NULL, false);