From 8d794763d5942841cb63919e19f4be7798afaa05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 16 Jan 2018 20:54:44 +0100 Subject: [PATCH] dprintf: remove redondant user address check. check user_memcpy success. --- src/add-ons/kernel/drivers/common/dprintf.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/drivers/common/dprintf.cpp b/src/add-ons/kernel/drivers/common/dprintf.cpp index 1addfa201b..a97d692fe6 100644 --- a/src/add-ons/kernel/drivers/common/dprintf.cpp +++ b/src/add-ons/kernel/drivers/common/dprintf.cpp @@ -11,7 +11,6 @@ #include -#include #include #include @@ -71,8 +70,6 @@ dprintf_read(void *cookie, off_t pos, void *buffer, size_t *length) static status_t dprintf_write(void *cookie, off_t pos, const void *buffer, size_t *_length) { - if (!IS_USER_ADDRESS(buffer)) - return B_BAD_ADDRESS; const char *str = (const char*)buffer; int bytesLeft = *_length; @@ -100,7 +97,8 @@ dprintf_write(void *cookie, off_t pos, const void *buffer, size_t *_length) char localBuffer[512]; if (bytesLeft > (int)sizeof(localBuffer) - 1) chunkSize = (int)sizeof(localBuffer) - 1; - user_memcpy(localBuffer, str, chunkSize); + if (user_memcpy(localBuffer, str, chunkSize) < B_OK) + return B_BAD_ADDRESS; localBuffer[chunkSize] = '\0'; debug_puts(localBuffer, chunkSize);