[haiku-commits] haiku: hrev51812 - src/add-ons/kernel/file_systems/layers/write_overlay

  • From: jerome.duval@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 26 Feb 2018 12:59:56 -0500 (EST)

hrev51812 adds 1 changeset to branch 'master'
old head: fb6387f2b46230b8ce98d58ef76fc99157ed2bf8
new head: 0bb9fd3868a01d4da9ac0fb1250d883e6873b70f
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=0bb9fd3868a0+%5Efb6387f2b462

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

0bb9fd3868a0: write_overlay: Read()/Write() with user_memcpy().

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

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

Revision:    hrev51812
Commit:      0bb9fd3868a01d4da9ac0fb1250d883e6873b70f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0bb9fd3868a0
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Feb 26 17:59:01 2018 UTC

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

1 file changed, 6 insertions(+), 6 deletions(-)
.../file_systems/layers/write_overlay/write_overlay.cpp  | 12 ++++++------

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

diff --git 
a/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 
b/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp
index 93078a8c51..4c48cfca8c 100644
--- a/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp
+++ b/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp
@@ -776,8 +776,8 @@ OverlayInode::Read(void *_cookie, off_t position, void 
*buffer, size_t *length,
                        if (ioRequest != NULL) {
                                ioRequest->CopyData(source, ioRequest->Offset()
                                        + ((addr_t)pointer - (addr_t)buffer), 
copyLength);
-                       } else
-                               memcpy(pointer, source, copyLength);
+                       } else if (user_memcpy(pointer, source, copyLength) < 
B_OK)
+                               return B_BAD_ADDRESS;
 
                        bytesLeft -= copyLength;
                        position += copyLength;
@@ -838,8 +838,8 @@ OverlayInode::Write(void *_cookie, off_t position, const 
void *buffer,
                                void *target = other->buffer + (newPosition - 
other->position);
                                if (ioRequest != NULL)
                                        
ioRequest->CopyData(ioRequest->Offset(), target, length);
-                               else
-                                       memcpy(target, buffer, length);
+                               else if (user_memcpy(target, buffer, length) < 
B_OK)
+                                       return B_BAD_ADDRESS;
 
                                fStat.st_mtime = time(NULL);
                                if (fIsAttribute) {
@@ -897,8 +897,8 @@ OverlayInode::Write(void *_cookie, off_t position, const 
void *buffer,
        void *target = element->buffer + (position - newPosition);
        if (ioRequest != NULL)
                ioRequest->CopyData(0, target, length);
-       else
-               memcpy(target, buffer, length);
+       else if (user_memcpy(target, buffer, length) < B_OK)
+               return B_BAD_ADDRESS;
 
        fStat.st_mtime = time(NULL);
 


Other related posts:

  • » [haiku-commits] haiku: hrev51812 - src/add-ons/kernel/file_systems/layers/write_overlay - jerome . duval