From 88abbd90dc4c186036b3b85e35f76a0735f39549 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 17 Apr 2025 23:12:40 +0300 Subject: [PATCH] LibC: Fix strncat strncat was using strncpy internally which nullpadded dest until n bytes were written. also there was no terminating null byte added if src was shorter than n bytes --- userspace/libraries/LibC/string.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/userspace/libraries/LibC/string.cpp b/userspace/libraries/LibC/string.cpp index 0117f308..b15b711a 100644 --- a/userspace/libraries/LibC/string.cpp +++ b/userspace/libraries/LibC/string.cpp @@ -147,7 +147,10 @@ char* strcat(char* __restrict__ dest, const char* __restrict__ src) char* strncat(char* __restrict__ dest, const char* __restrict__ src, size_t n) { - strncpy(dest + strlen(dest), src, n); + dest += strlen(dest); + while (*src && n--) + *dest++ = *src++; + *dest = '\0'; return dest; }