From 0ebaa35aa1d8ccc3f6c6ffc420b3c106a81e9709 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 23 Jan 2019 07:28:38 +0100 Subject: [PATCH] Kernel: Let the process argv arrays be null-terminated. Seems like this is expected. I don't know why I thought it wasn't. --- Kernel/Process.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 1a9620d782..f17419ed86 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -543,13 +543,14 @@ int Process::sys$get_arguments(int* argc, char*** argv) char* argpage = (char*)region->linearAddress.get(); *argc = m_initial_arguments.size(); *argv = (char**)argpage; - char* bufptr = argpage + (sizeof(char*) * m_initial_arguments.size()); + char* bufptr = argpage + (sizeof(char*) * (m_initial_arguments.size() + 1)); for (size_t i = 0; i < m_initial_arguments.size(); ++i) { (*argv)[i] = bufptr; memcpy(bufptr, m_initial_arguments[i].characters(), m_initial_arguments[i].length()); bufptr += m_initial_arguments[i].length(); *(bufptr++) = '\0'; } + (*argv)[m_initial_arguments.size()] = nullptr; return 0; }