Commit fbffce81 authored by Rodrigo Campos's avatar Rodrigo Campos Committed by Thomas Weißschuh
Browse files

tools/nolibc: Fix strlcpy() return code and size usage



The return code should always be strlen(src), and we should copy at most
size-1 bytes.

While we are there, make sure to null-terminate the dst buffer if we
copied something.

Signed-off-by: default avatarRodrigo Campos <rodrigo@sdfg.com.ar>
Signed-off-by: default avatarThomas Weißschuh <linux@weissschuh.net>
parent 34d232c3
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -219,16 +219,18 @@ static __attribute__((unused))
size_t strlcpy(char *dst, const char *src, size_t size)
{
	size_t len;
	char c;

	for (len = 0;;) {
		c = src[len];
		if (len < size)
			dst[len] = c;
		if (!c)
			break;
		len++;
	for (len = 0; len < size; len++) {
		dst[len] = src[len];
		if (!dst[len])
			return len;
	}
	if (size)
		dst[size-1] = '\0';

	while (src[len])
		len++;

	return len;
}