From 509c7718dde14a9317457a1f36dc56537679596d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 7 Apr 2018 17:51:10 +0200 Subject: [PATCH] fat: dosfs_read_attr used the user buffer directly It now uses user_strlcpy(). --- src/add-ons/kernel/file_systems/fat/attr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/file_systems/fat/attr.c b/src/add-ons/kernel/file_systems/fat/attr.c index 6f0bf71e1d..3042278f05 100644 --- a/src/add-ons/kernel/file_systems/fat/attr.c +++ b/src/add-ons/kernel/file_systems/fat/attr.c @@ -233,8 +233,10 @@ dosfs_read_attr(fs_volume *_vol, fs_vnode *_node, void *_cookie, off_t pos, return EINVAL; } - strncpy(buffer, node->mime + pos, *_length - 1); - ((char *)buffer)[*_length - 1] = 0; + if (user_strlcpy(buffer, node->mime + pos, *_length) < B_OK) { + UNLOCK_VOL(vol); + return B_BAD_ADDRESS; + } *_length = strlen(buffer) + 1; UNLOCK_VOL(vol);