diff --git a/libc/string/strlcat.cpp b/libc/string/strlcat.cpp index 4a60b7b4..04d92240 100644 --- a/libc/string/strlcat.cpp +++ b/libc/string/strlcat.cpp @@ -29,7 +29,6 @@ size_t strlcat(char* restrict dest, const char* restrict src, size_t size) { size_t dest_len = strnlen(dest, size); if ( size <= dest_len ) - return dest_len; - strcpy(dest + strlen(dest), src); + return dest_len + strlen(src); return dest_len + strlcpy(dest + dest_len, src, size - dest_len); } diff --git a/libc/string/strlcpy.cpp b/libc/string/strlcpy.cpp index 6cba066e..878f5327 100644 --- a/libc/string/strlcpy.cpp +++ b/libc/string/strlcpy.cpp @@ -1,6 +1,6 @@ /******************************************************************************* - Copyright(C) Jonas 'Sortie' Termansen 2013. + Copyright(C) Jonas 'Sortie' Termansen 2013, 2014. This file is part of the Sortix C Library. @@ -28,10 +28,10 @@ extern "C" size_t strlcpy(char* restrict dest, const char* restrict src, size_t size) { if ( !size ) - return 0; + return strlen(src); size_t result; for ( result = 0; result < size-1 && src[result]; result++ ) dest[result] = src[result]; dest[result] = '\0'; - return result; + return result + strlen(src + result); }