summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2022-11-16 00:36:47 -0500
committerWilliam Wilgus <wilgus.william@gmail.com>2022-11-16 00:36:47 -0500
commit7733abce29734fd0d825504b3094f9efe719360b (patch)
tree6231cfe9cb8dcbc02afab81c1366d5a7d976a253
parent28af87526d348b6f2d98dadfeb01011cd59dc709 (diff)
downloadrockbox-7733abce29734fd0d825504b3094f9efe719360b.tar.gz
rockbox-7733abce29734fd0d825504b3094f9efe719360b.zip
strlcat use strlcpy for the copy part
Change-Id: I729b292a58d9f6542e58ac01d1dc90d36175886d
-rw-r--r--firmware/common/strlcat.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/firmware/common/strlcat.c b/firmware/common/strlcat.c
index 783ea4daba..f1f0031f06 100644
--- a/firmware/common/strlcat.c
+++ b/firmware/common/strlcat.c
@@ -16,7 +16,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include <string.h>
+#include "string-extra.h"
/*
* Appends src to string dst of size siz (unlike strncat, siz is the
@@ -29,9 +29,7 @@ size_t
strlcat(char *dst, const char *src, size_t siz)
{
char *d = dst;
- const char *s = src;
- size_t n = siz;
- size_t dlen;
+ size_t dlen, n = siz;
/* Find the end of dst and adjust bytes left but don't go past end */
while (n-- != 0 && *d != '\0')
@@ -39,17 +37,6 @@ strlcat(char *dst, const char *src, size_t siz)
dlen = d - dst;
n = siz - dlen;
- if (n == 0)
- return(dlen + strlen(s));
- while (*s != '\0') {
- if (n != 1) {
- *d++ = *s;
- n--;
- }
- s++;
- }
- *d = '\0';
-
- return(dlen + (s - src)); /* count does not include NUL */
+ return strlcpy(dst + dlen, src, n) + dlen;
}