35 lines
937 B
Diff
35 lines
937 B
Diff
From c4d10f78b3946fc32624d78c038e9731ca2ce454 Mon Sep 17 00:00:00 2001
|
|
From: liningjie <liningjie@xfusion.com>
|
|
Date: Tue, 15 Aug 2023 00:54:28 +0800
|
|
Subject: [PATCH] PR/310: p870613: Don't use strlcpy to copy the string, it
|
|
will try to scan the source string to find out how much space is needed the
|
|
source string might not be NUL terminated.
|
|
|
|
---
|
|
src/funcs.c | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/funcs.c b/src/funcs.c
|
|
index 33c3f85..295fb75 100644
|
|
--- a/src/funcs.c
|
|
+++ b/src/funcs.c
|
|
@@ -54,9 +54,12 @@ FILE_RCSID("@(#)$File: funcs.c,v 1.122 2021/06/30 10:08:48 christos Exp $")
|
|
protected char *
|
|
file_copystr(char *buf, size_t blen, size_t width, const char *str)
|
|
{
|
|
- if (++width > blen)
|
|
- width = blen;
|
|
- strlcpy(buf, str, width);
|
|
+ if (blen == 0)
|
|
+ return buf;
|
|
+ if (width >= blen)
|
|
+ width = blen - 1;
|
|
+ memcpy(buf, str, width);
|
|
+ buf[width] = '\0';
|
|
return buf;
|
|
}
|
|
|
|
--
|
|
2.33.0
|
|
|