[haiku-commits] haiku: hrev51896 - in src/add-ons/kernel/file_systems: ntfs fat

  • From: jerome.duval@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 24 Apr 2018 14:07:47 -0400 (EDT)

hrev51896 adds 2 changesets to branch 'master'
old head: e3becd53eef5c093ee8c8f32bab51d40b0f2b8d4
new head: 7760bb460ff528995018db1535f62e68ce7876d2
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=7760bb460ff5+%5Ee3becd53eef5

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

b0bcd96bd74a: fat: use the return value of strlcpy instead of strlen.

7760bb460ff5: ntfs: fake_read_attrib used the user buffer directly
  
  It now uses user_strlcpy()

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

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

2 files changed, 12 insertions(+), 5 deletions(-)
src/add-ons/kernel/file_systems/fat/attr.c             |  6 ++++--
src/add-ons/kernel/file_systems/ntfs/fake_attributes.c | 11 ++++++++---

############################################################################

Commit:      b0bcd96bd74a44888cf501a1f745793a95be4d92
URL:         https://git.haiku-os.org/haiku/commit/?id=b0bcd96bd74a
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Tue Apr 24 17:54:00 2018 UTC

fat: use the return value of strlcpy instead of strlen.

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

diff --git a/src/add-ons/kernel/file_systems/fat/attr.c 
b/src/add-ons/kernel/file_systems/fat/attr.c
index 3042278f05..850f959e2c 100644
--- a/src/add-ons/kernel/file_systems/fat/attr.c
+++ b/src/add-ons/kernel/file_systems/fat/attr.c
@@ -233,11 +233,13 @@ dosfs_read_attr(fs_volume *_vol, fs_vnode *_node, void 
*_cookie, off_t pos,
                return EINVAL;
        }
 
-       if (user_strlcpy(buffer, node->mime + pos, *_length) < B_OK) {
+       ssize_t length = user_strlcpy(buffer, node->mime + pos, *_length);
+       if (length < B_OK) {
                UNLOCK_VOL(vol);
                return B_BAD_ADDRESS;
        }
-       *_length = strlen(buffer) + 1;
+       if (length < *_length)
+               *_length = length + 1;
 
        UNLOCK_VOL(vol);
        return 0;

############################################################################

Revision:    hrev51896
Commit:      7760bb460ff528995018db1535f62e68ce7876d2
URL:         https://git.haiku-os.org/haiku/commit/?id=7760bb460ff5
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Tue Apr 24 18:05:33 2018 UTC

ntfs: fake_read_attrib used the user buffer directly

It now uses user_strlcpy()

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

diff --git a/src/add-ons/kernel/file_systems/ntfs/fake_attributes.c 
b/src/add-ons/kernel/file_systems/ntfs/fake_attributes.c
index 1fc00f707b..407633221f 100644
--- a/src/add-ons/kernel/file_systems/ntfs/fake_attributes.c
+++ b/src/add-ons/kernel/file_systems/ntfs/fake_attributes.c
@@ -274,6 +274,7 @@ fake_read_attrib(fs_volume *_vol, fs_vnode *_node, void 
*_cookie,
        vnode *node = (vnode *)_node->private_node;
 
        int     result = B_NO_ERROR;
+       ssize_t length;
 
        LOCK_VOL(ns);
 
@@ -294,9 +295,13 @@ fake_read_attrib(fs_volume *_vol, fs_vnode *_node, void 
*_cookie,
                goto    exit;
        }
 
-       strncpy(buffer, node->mime + pos, *_length - 1);
-       ((char *)buffer)[*_length - 1] = 0;
-       *_length = strlen(buffer) + 1;
+       length = user_strlcpy(buffer, node->mime + pos, *_length);
+       if (length < B_OK) {
+               result = B_BAD_ADDRESS;
+               goto exit;
+       }
+       if (length < *_length)
+               *_length = length + 1;
 
 exit:
 


Other related posts:

  • » [haiku-commits] haiku: hrev51896 - in src/add-ons/kernel/file_systems: ntfs fat - jerome . duval