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

Message ID 202301052017571305723@zte.com.cn
State New
Headers
Series [linux-next] rcu/trace: use strscpy() to instead of strncpy() |

Commit Message

Yang Yang Jan. 5, 2023, 12:17 p.m. UTC
  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.cn>
---
 include/trace/events/rcu.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Paul E. McKenney Jan. 5, 2023, 5:49 p.m. UTC | #1
On Thu, Jan 05, 2023 at 08:17:57PM +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.
> 
> Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
> Signed-off-by: Yang Yang <yang.yang29@zte.com.cn>

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@zte.com.cn>
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@zte.com.cn>
    Signed-off-by: Yang Yang <yang.yang29@zte.com.cn>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

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;
  

Patch

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;