arch/x86/kernel/cpu/mce/dev-mcelog.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
From: Xu Panda <xu.panda@zte.com.cn>
The implementation of strscpy() is more robust and safer.
That's now the recommended way to copy NUL terminated strings.
Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
Signed-off-by: Yang Yang <yang.yang29@zte.com>
---
arch/x86/kernel/cpu/mce/dev-mcelog.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/x86/kernel/cpu/mce/dev-mcelog.c b/arch/x86/kernel/cpu/mce/dev-mcelog.c
index 100fbeebdc72..a05ac0716ecf 100644
--- a/arch/x86/kernel/cpu/mce/dev-mcelog.c
+++ b/arch/x86/kernel/cpu/mce/dev-mcelog.c
@@ -105,8 +105,7 @@ static ssize_t set_trigger(struct device *s, struct device_attribute *attr,
{
char *p;
- strncpy(mce_helper, buf, sizeof(mce_helper));
- mce_helper[sizeof(mce_helper)-1] = 0;
+ strscpy(mce_helper, buf, sizeof(mce_helper));
p = strchr(mce_helper, '\n');
if (p)
--
2.15.2
On Sat, Dec 03, 2022 at 02:19:32PM +0800, yang.yang29@zte.com.cn wrote: > From: Xu Panda <xu.panda@zte.com.cn> > > The implementation of strscpy() is more robust and safer. > That's now the recommended way to copy NUL terminated strings. It should read "NULL-terminated strings". Thanks and BR, Ricardo
>> The implementation of strscpy() is more robust and safer.
>> That's now the recommended way to copy NUL terminated strings.
>
> It should read "NULL-terminated strings".
Both "NUL-terminated" and "NULL-terminated" seem to be used in the kernel
source and commit comments. NULL is ahead 124:45 in the source, but it
is closer in the commit logs where the ratio is 129:76.
Single "L" NUL seems technically more accurate as the string terminator is
an ascii NUL character. From man 5 ascii the character name is NUL (though
the description says "null" to muddy the waters)
Oct Dec Hex Char
───────────────────────────────────────────
000 0 00 NUL '\0' (null character)
-Tony
On Wed, Dec 14, 2022 at 09:29:59PM +0000, Luck, Tony wrote: > >> The implementation of strscpy() is more robust and safer. > >> That's now the recommended way to copy NUL terminated strings. > > > > It should read "NULL-terminated strings". > > Both "NUL-terminated" and "NULL-terminated" seem to be used in the kernel > source and commit comments. NULL is ahead 124:45 in the source, but it > is closer in the commit logs where the ratio is 129:76. > > Single "L" NUL seems technically more accurate as the string terminator is > an ascii NUL character. From man 5 ascii the character name is NUL (though > the description says "null" to muddy the waters) > > Oct Dec Hex Char > ─────────────────────────────────────────── > 000 0 00 NUL '\0' (null character) Thanks for the analysis Tony. Indeed, I agree that "NUL-terminated" is more accurate. Thanks and BR, Ricardo
> From: Xu Panda <xu.panda@zte.com.cn> > > The implementation of strscpy() is more robust and safer. > That's now the recommended way to copy NUL terminated strings. Reviewed-by: Tony Luck <tony.luck@intel.com>
The following commit has been merged into the x86/platform branch of tip:
Commit-ID: 7ddf0050a21fdcc025c3cb1055fe3db60df1cd97
Gitweb: https://git.kernel.org/tip/7ddf0050a21fdcc025c3cb1055fe3db60df1cd97
Author: Xu Panda <xu.panda@zte.com.cn>
AuthorDate: Sat, 03 Dec 2022 14:19:32 +08:00
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Sat, 07 Jan 2023 11:47:35 +01:00
x86/mce/dev-mcelog: use strscpy() to instead of strncpy()
The implementation of strscpy() is more robust and safer.
That's now the recommended way to copy NUL terminated strings.
Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
Signed-off-by: Yang Yang <yang.yang29@zte.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Link: https://lore.kernel.org/r/202212031419324523731@zte.com.cn
---
arch/x86/kernel/cpu/mce/dev-mcelog.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/x86/kernel/cpu/mce/dev-mcelog.c b/arch/x86/kernel/cpu/mce/dev-mcelog.c
index 100fbee..a05ac07 100644
--- a/arch/x86/kernel/cpu/mce/dev-mcelog.c
+++ b/arch/x86/kernel/cpu/mce/dev-mcelog.c
@@ -105,8 +105,7 @@ static ssize_t set_trigger(struct device *s, struct device_attribute *attr,
{
char *p;
- strncpy(mce_helper, buf, sizeof(mce_helper));
- mce_helper[sizeof(mce_helper)-1] = 0;
+ strscpy(mce_helper, buf, sizeof(mce_helper));
p = strchr(mce_helper, '\n');
if (p)
© 2016 - 2025 Red Hat, Inc.