From d9b726102429f555aec12275bb740f315ae9a795 Mon Sep 17 00:00:00 2001 From: Damien George Date: Wed, 22 Jul 2020 16:28:46 +1000 Subject: [PATCH] lib/libc: Fix string0's implementation of strncpy. Fixing 98e583430fb7b793119db27bad9f98119e81579f, the semantics of strncpy require that the remainder of dst be filled with null bytes. Signed-off-by: Damien George --- lib/libc/string0.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/libc/string0.c b/lib/libc/string0.c index 5f40a71e3e..19ad14d0f7 100644 --- a/lib/libc/string0.c +++ b/lib/libc/string0.c @@ -178,8 +178,10 @@ char *strncpy(char *s1, const char *s2, size_t n) { while (n > 0) { n--; if ((*dst++ = *src++) == '\0') { - /* If we get here, we found a null character at the end of s2 */ - *dst = '\0'; + /* If we get here, we found a null character at the end + of s2, so use memset to put null bytes at the end of + s1. */ + memset(dst, '\0', n); break; } }