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

From: Paul E. McKenney
Date: Thu Jan 05 2023 - 12:49:38 EST


On Thu, Jan 05, 2023 at 08:17:57PM +0800, yang.yang29@xxxxxxxxxx wrote:
> From: Xu Panda <xu.panda@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>
> Signed-off-by: Yang Yang <yang.yang29@xxxxxxxxxx>

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 <xu.panda@xxxxxxxxxx>
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 <xu.panda@xxxxxxxxxx>
Signed-off-by: Yang Yang <yang.yang29@xxxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>

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;