From 3134e71811d73ba55a0070cb299e6099d91cd78b Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 3 May 2008 01:04:20 +0000 Subject: [PATCH] Also check whether the data pointers of provided userland iovecs are actually pointing to userland. This saves checks in the net stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25298 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/fs/socket.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/system/kernel/fs/socket.cpp b/src/system/kernel/fs/socket.cpp index 3f7daaf525..b2e812e5b8 100644 --- a/src/system/kernel/fs/socket.cpp +++ b/src/system/kernel/fs/socket.cpp @@ -161,6 +161,11 @@ prepare_userland_msghdr(const msghdr* userMessage, msghdr& message, return B_BAD_ADDRESS; } + for (int i = 0; i < message.msg_iovlen; i++) { + if (!IS_USER_ADDRESS(vecs[i].iov_base)) + return B_BAD_ADDRESS; + } + message.msg_iov = vecs; } else { message.msg_iov = NULL;