[haiku-commits] haiku: hrev53697 - src/system/kernel/fs

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 9 Jan 2020 19:25:00 -0500 (EST)

hrev53697 adds 1 changeset to branch 'master'
old head: 3e818f2075e1764c33fe620e8c51b7c47091afc4
new head: 2cf8f0ee6b4f9a27af5b79d77da12791d4bd1ff3
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=2cf8f0ee6b4f+%5E3e818f2075e1

----------------------------------------------------------------------------

2cf8f0ee6b4f: kernel: add assert in _user_read_dir
  
  * This will help catch bugs such as in #15607.
  
  Change-Id: I25b28932f9db4e2abe8499dd829c910bb565086b
  Reviewed-on: https://review.haiku-os.org/c/haiku/+/2082
  Reviewed-by: waddlesplash <waddlesplash@xxxxxxxxx>

                                              [ X512 <danger_mail@xxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev53697
Commit:      2cf8f0ee6b4f9a27af5b79d77da12791d4bd1ff3
URL:         https://git.haiku-os.org/haiku/commit/?id=2cf8f0ee6b4f
Author:      X512 <danger_mail@xxxxxxx>
Date:        Tue Jan  7 16:53:33 2020 UTC
Committer:   waddlesplash <waddlesplash@xxxxxxxxx>
Commit-Date: Fri Jan 10 00:24:56 2020 UTC

Ticket:      https://dev.haiku-os.org/ticket/15607

----------------------------------------------------------------------------

1 file changed, 4 insertions(+)
src/system/kernel/fs/fd.cpp | 4 ++++

----------------------------------------------------------------------------

diff --git a/src/system/kernel/fs/fd.cpp b/src/system/kernel/fs/fd.cpp
index e7e1dc68cc..91fe26c08b 100644
--- a/src/system/kernel/fs/fd.cpp
+++ b/src/system/kernel/fs/fd.cpp
@@ -984,6 +984,8 @@ _user_read_dir(int fd, struct dirent* userBuffer, size_t 
bufferSize,
        if (status != B_OK)
                return status;
 
+       ASSERT(count <= maxCount);
+
        // copy the buffer back -- determine the total buffer size first
        size_t sizeToCopy = 0;
        BytePointer<struct dirent> entry = buffer;
@@ -993,6 +995,8 @@ _user_read_dir(int fd, struct dirent* userBuffer, size_t 
bufferSize,
                entry += length;
        }
 
+       ASSERT(sizeToCopy <= bufferSize);
+
        if (user_memcpy(userBuffer, buffer, sizeToCopy) != B_OK)
                return B_BAD_ADDRESS;
 


Other related posts:

  • » [haiku-commits] haiku: hrev53697 - src/system/kernel/fs - waddlesplash