lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 Aug 2021 08:56:51 +0000 From: David Laight <David.Laight@...LAB.COM> To: 'Joe Perches' <joe@...ches.com>, Robert Richter <rric@...nel.org>, "Len Baker" <len.baker@....com> CC: Borislav Petkov <bp@...en8.de>, Mauro Carvalho Chehab <mchehab@...nel.org>, Tony Luck <tony.luck@...el.com>, James Morse <james.morse@....com>, Kees Cook <keescook@...omium.org>, "linux-hardening@...r.kernel.org" <linux-hardening@...r.kernel.org>, "linux-edac@...r.kernel.org" <linux-edac@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> Subject: RE: [PATCH v3] drivers/edac/edac_mc: Remove all strcpy() uses From: Joe Perches > Sent: 09 August 2021 18:19 > > On Mon, 2021-08-09 at 12:05 +0200, Robert Richter wrote: > > On 08.08.21 13:26:17, Len Baker wrote: > > > > > > Perhaps this should use scnprintf rather than strscpy > > > > Something like: > > > > n += scnprintf(buf + n, len - n, "%s", > > > > p == e->label ? dim->label : OTHER_LABEL); > > > > > > > In the first version [1] the scnprintf was used but Robert Richter don't > > > see any benefit compared with the current implementation. > > > > > > [1] https://lore.kernel.org/linux-hardening/20210725162954.9861-1-len.baker@gmx.com/ > > > > Reason is that there is the assumption that p must always point at the > > end of the string and its trailing zero byte. I am not opposed using > > the string function's return code instead of strlen() to get the > > length. But why using formated output if strscpy() can be used? > > strscpy and scnprintf have different return values and it's simpler > and much more common to use scnprintf for appended strings that are > limited to a specific buffer length. scnprintf() will be a lot slower, but has a much better return value than most of the strxxxcpy() functions. The only slight problem is that you can't differentiate overflow from a max-length output. Trouble is fixing that adds 'yet another set of functions'. Clearly we need the yellow with purple stripe ones :-) Probably: offset = xxx(buf, len, offset, ......) where offset == len on truncation. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
Powered by blists - more mailing lists