From Alex von Gluck IV <kallisti5@xxxxxxxxxxx>:
Alex von Gluck IV has uploaded this change for review. (
https://review.haiku-os.org/c/haiku/+/3285 ;)
Change subject: kernel/fs: On write, skip address check on 0 length and NULL ptr
......................................................................
kernel/fs: On write, skip address check on 0 length and NULL ptr
* golang performs a write of 0 length with a NULL buffer to
"create" an empty file. We return BAD_ADDRESS for this.
* If condition above occurs, continue as a length of 0 means
we won't even read the passed buffer.
Change-Id: I8718abb92f5865a7b6f4fb7f2b74f803497ebef0
---
M src/system/kernel/fs/fd.cpp
1 file changed, 3 insertions(+), 2 deletions(-)
git pull ssh://git.haiku-os.org:22/haiku refs/changes/85/3285/1
diff --git a/src/system/kernel/fs/fd.cpp b/src/system/kernel/fs/fd.cpp
index 91fe26c..bf4129e 100644
--- a/src/system/kernel/fs/fd.cpp
+++ b/src/system/kernel/fs/fd.cpp
@@ -731,8 +731,9 @@
static ssize_t
common_user_io(int fd, off_t pos, void* buffer, size_t length, bool write)
{
- if (!IS_USER_ADDRESS(buffer))
- return B_BAD_ADDRESS;
+ if (length > 0 && buffer != NULL)
+ if (!IS_USER_ADDRESS(buffer))
+ return B_BAD_ADDRESS;
if (pos < -1)
return B_BAD_VALUE;
--
To view, visit https://review.haiku-os.org/c/haiku/+/3285
To unsubscribe, or for help writing mail filters, visit
https://review.haiku-os.org/settings
Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I8718abb92f5865a7b6f4fb7f2b74f803497ebef0
Gerrit-Change-Number: 3285
Gerrit-PatchSet: 1
Gerrit-Owner: Alex von Gluck IV <kallisti5@xxxxxxxxxxx>
Gerrit-MessageType: newchange