38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
From 9cbda6e1f8fdd4d7ffae26edcabceb239ed14ece Mon Sep 17 00:00:00 2001
|
||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||
Date: Mon, 31 Jul 2023 11:21:25 -0700
|
||
Subject: [PATCH] who: fix only-theoretical overflow
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
Change stzncpy’s implementation to match its comment, in the case
|
||
where SRC + LEN would overflow. This case never happens in coreutils.
|
||
* src/system.h (stzncpy): Work even if SRC + LEN would overflow.
|
||
|
||
Reference:https://github.com/coreutils/coreutils/commit/9cbda6e1f8fdd4d7ffae26edcabceb239ed14ece
|
||
Conflict:NA
|
||
|
||
---
|
||
src/system.h | 4 ++--
|
||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
||
diff --git a/src/system.h b/src/system.h
|
||
index db1a6773b..2d9c47f48 100644
|
||
--- a/src/system.h
|
||
+++ b/src/system.h
|
||
@@ -781,8 +781,8 @@ write_error (void)
|
||
static inline char *
|
||
stzncpy (char *restrict dest, char const *restrict src, size_t len)
|
||
{
|
||
- char const *src_end = src + len;
|
||
- while (src < src_end && *src)
|
||
+ size_t i;
|
||
+ for (i = 0; i < len && *src; i++)
|
||
*dest++ = *src++;
|
||
*dest = 0;
|
||
return dest;
|
||
--
|
||
2.27.0
|
||
|