diff options
author | Anton Kling <anton@kling.gg> | 2024-04-15 20:34:58 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-04-15 20:34:58 +0200 |
commit | 62ba2a9ab01e5f2a9b1cd325af8d3112702b7713 (patch) | |
tree | 0926fbbc9d8c0058ee0f37e4f8691a554ca647e3 /kernel/libc/string | |
parent | 3acd8cf6c8e41c1e1228c60ac5c4ea0f69e7aff5 (diff) |
Bug fix and cleanup.
Diffstat (limited to 'kernel/libc/string')
-rw-r--r-- | kernel/libc/string/copy.c | 9 | ||||
-rw-r--r-- | kernel/libc/string/strncpy.c | 11 |
2 files changed, 5 insertions, 15 deletions
diff --git a/kernel/libc/string/copy.c b/kernel/libc/string/copy.c index 11cd664..4acbbf4 100644 --- a/kernel/libc/string/copy.c +++ b/kernel/libc/string/copy.c @@ -4,12 +4,13 @@ #include <string.h> char *copy_and_allocate_string(const char *s) { - size_t l = strlen(s); - char *r = kmalloc(l + 1); + size_t l = strlen(s) + 1; + char *r = kmalloc(l); if (!r) { return NULL; } - return strncpy(r, s, l); + memcpy(r, s, l); + return r; } char *copy_and_allocate_user_string(const char *s) { @@ -24,6 +25,6 @@ char *copy_and_allocate_user_string(const char *s) { if (!r) { return NULL; } - strlcpy(r, s, len); + memcpy(r, s, len+1); return r; } diff --git a/kernel/libc/string/strncpy.c b/kernel/libc/string/strncpy.c deleted file mode 100644 index a886895..0000000 --- a/kernel/libc/string/strncpy.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stddef.h> -#include <string.h> - -// FIXME: Something is weird with this function -char *strncpy(char *dest, const char *src, size_t n) { - char *r = dest; - for (; n && (*dest = *src); n--, src++, dest++) - ; - *dest = '\0'; - return r; -} |