2023-01-05 12:45:54

by Yang Yang

[permalink] [raw]
Subject: [PATCH linux-next] rcu/trace: use strscpy() to instead of strncpy()

From: Xu Panda <[email protected]>

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 <[email protected]>
Signed-off-by: Yang Yang <[email protected]>
---
include/trace/events/rcu.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
index 90b2fb0292cb..2703992edecd 100644
--- a/include/trace/events/rcu.h
+++ b/include/trace/events/rcu.h
@@ -776,9 +776,8 @@ TRACE_EVENT_RCU(rcu_torture_read,
),

TP_fast_assign(
- strncpy(__entry->rcutorturename, rcutorturename,
+ strscpy(__entry->rcutorturename, rcutorturename,
RCUTORTURENAME_LEN);
- __entry->rcutorturename[RCUTORTURENAME_LEN - 1] = 0;
__entry->rhp = rhp;
__entry->secs = secs;
__entry->c_old = c_old;
--
2.15.2


2023-01-05 18:04:38

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH linux-next] rcu/trace: use strscpy() to instead of strncpy()

On Thu, Jan 05, 2023 at 08:17:57PM +0800, [email protected] wrote:
> From: Xu Panda <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Yang Yang <[email protected]>

Queued for testing and additional review, thank you!

Please see below for the traditional wordsmithing and please let me
know if I messed anything up.

Thanx, Paul

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

commit 4034fe140e75d6e51b72d1fd16805e053b9b633c
Author: Xu Panda <[email protected]>
Date: Thu Jan 5 20:17:57 2023 +0800

rcu/trace: use strscpy() to instead of strncpy()

This commit saves a line of code by switching from strncpy() to strscpy()
by permitting the later NUL assignment to be removed. While in the area,
save another line by taking advantage of 100 characters.

Signed-off-by: Xu Panda <[email protected]>
Signed-off-by: Yang Yang <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>

diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
index 90b2fb0292cb1..c19ac1fa8a607 100644
--- a/include/trace/events/rcu.h
+++ b/include/trace/events/rcu.h
@@ -776,9 +776,7 @@ TRACE_EVENT_RCU(rcu_torture_read,
),

TP_fast_assign(
- strncpy(__entry->rcutorturename, rcutorturename,
- RCUTORTURENAME_LEN);
- __entry->rcutorturename[RCUTORTURENAME_LEN - 1] = 0;
+ strscpy(__entry->rcutorturename, rcutorturename, RCUTORTURENAME_LEN);
__entry->rhp = rhp;
__entry->secs = secs;
__entry->c_old = c_old;