[linux-next] relay: use strscpy() is more robust and safer

Message ID 202211220853259244666@zte.com.cn
State New
Headers
Series [linux-next] relay: use strscpy() is more robust and safer |

Commit Message

Yang Yang Nov. 22, 2022, 12:53 a.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>
---
 kernel/relay.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Andrew Morton Nov. 22, 2022, 1:07 a.m. UTC | #1
On Tue, 22 Nov 2022 08:53:25 +0800 (CST) <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.

I really see no benefit to this switch in this situation.  What am I
missing?

But I guess this:

hp2:/usr/src/linux-6.1-rc4> grep -r strlcpy . | wc
    400    1913   34402
hp2:/usr/src/linux-6.1-rc4> grep -r strscpy . | wc 
   2824   11990  266471

is a good enough reason for applying.
  

Patch

diff --git a/kernel/relay.c b/kernel/relay.c
index d7edc934c56d..0a3d2e702001 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -507,7 +507,7 @@  struct rchan *relay_open(const char *base_filename,
 	chan->private_data = private_data;
 	if (base_filename) {
 		chan->has_base_filename = 1;
-		strlcpy(chan->base_filename, base_filename, NAME_MAX);
+		strscpy(chan->base_filename, base_filename, NAME_MAX);
 	}
 	chan->cb = cb;
 	kref_init(&chan->kref);
@@ -578,7 +578,7 @@  int relay_late_setup_files(struct rchan *chan,
 	if (!chan || !base_filename)
 		return -EINVAL;

-	strlcpy(chan->base_filename, base_filename, NAME_MAX);
+	strscpy(chan->base_filename, base_filename, NAME_MAX);

 	mutex_lock(&relay_channels_mutex);
 	/* Is chan already set up? */