Messages in this thread | | | Date | Fri, 25 Jul 2003 18:57:09 +0200 | From | Andries Brouwer <> | Subject | Re: [PATCH] bad strlcpy conversion breaks toshiba_acpi |
| |
On Fri, Jul 25, 2003 at 06:15:10PM +0200, Petr Vandrovec wrote:
> Nope. Kernel strlcpy implementation is crap and I do not believe that there > is single place in the kernel which can live with current implementation. > > Take a look at ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.c > or at http://www.courtesan.com/todd/papers/strlcpy.html - it copies > at most size-1 characters. Nothing about characters beyond specified size > in the article. > > Kernel should use strnlen() to get string length, if coding loop like > OpenBSD does is unacceptable.
strlcpy is for strings, not for character arrays. The *BSD version accesses the source past the size-1 characters that are copied: while (*s++) ; Thus, replacing strncpy (used to copy character arrays, possibly not 0-terminated) by strlcpy is wrong.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |