From 163fdcd582e826df7b36741246c98058a1f95638 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 15 Jul 2025 11:44:14 +0300 Subject: [PATCH] LibC: Fix exec family function path resolution --- userspace/libraries/LibC/unistd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/userspace/libraries/LibC/unistd.cpp b/userspace/libraries/LibC/unistd.cpp index 52ff274b..858b8b19 100644 --- a/userspace/libraries/LibC/unistd.cpp +++ b/userspace/libraries/LibC/unistd.cpp @@ -231,13 +231,13 @@ static int exec_impl(const char* pathname, char* const* argv, char* const* envp, while (*cur) { const char* end = strchrnul(cur, ':'); - size_t len = end - cur; + const size_t len = end - cur; ASSERT(strlen(pathname) + 1 + len < sizeof(buffer)); - strncpy(buffer, cur, len); - strcat(buffer, "/"); - strcat(buffer, pathname); + memcpy(buffer, cur, len); + buffer[len] = '/'; + strcpy(buffer + len + 1, pathname); struct stat st; if (stat(buffer, &st) == 0)