Re: strscpy
Maxime Villard <[email protected]> Tue, 26 May 2020 21:26:54 +0200
| Newsgroups | gmane.os.netbsd.devel.security |
|---|---|
| Message-ID | <[email protected]> |
Le 20/05/2020 à 00:22, Robert Elz a écrit : > Date: Tue, 19 May 2020 19:15:46 +0200 > From: Maxime Villard <[email protected]> > Message-ID: <[email protected]> > > | I see no reason to want to have a string copy function able > | to copy a terabyte worth of string in the kernel > > No, of course not. My point was that you're touting this function as > being near perfect - and it isn't. I didn't say it is perfect or near perfect. Quoting myself: "What I find nice with strscpy(), is that it simply corrects the unsafe strlen behavior of strlcpy(), but preserves the pattern of arguments. [...] strscpy() seems like a good balance to me." > | Also, FYI, there is a difference between source ASM language > > which is what I meant .. string functions tend to be important enough > (and simple enough) that writing them in assembler can bring large > gains ... Actually, no: https://mail-index.netbsd.org/port-amd64/2020/04/19/msg003228.html > Is there really some great difficulty in just using copystr() more ? There apparently is. Which can be understood, because people reuse the functions they know well. I think it matters to have a function that preserves the pattern of arguments of the libc strlcpy(), strncpy(), memcpy() and memset(). That is: (dst, src, len). I still don't quite get why overloading is such a big deal, considering that 99% of the callers aren't interested in the return value to begin with. There also is plenty of overloading all over the kernel and libc, because that's convenient, and C doesn't support tuples as return values. In short, I would entirely dismiss your point. Maxime