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: Sat, 30 May 2020 10:35:47 -0700 From: Eric Biggers <ebiggers@...nel.org> To: Matthew Wilcox <willy@...radead.org> Cc: linux-ext4@...r.kernel.org, linux-fsdevel@...r.kernel.org, linux-f2fs-devel@...ts.sourceforge.net, stable@...r.kernel.org, Al Viro <viro@...iv.linux.org.uk>, Daniel Rosenberg <drosen@...gle.com>, Gabriel Krisman Bertazi <krisman@...labora.co.uk> Subject: Re: [PATCH] ext4: avoid utf8_strncasecmp() with unstable name On Sat, May 30, 2020 at 10:18:14AM -0700, Matthew Wilcox wrote: > On Fri, May 29, 2020 at 11:02:16PM -0700, Eric Biggers wrote: > > + if (len <= DNAME_INLINE_LEN - 1) { > > + unsigned int i; > > + > > + for (i = 0; i < len; i++) > > + strbuf[i] = READ_ONCE(str[i]); > > + strbuf[len] = 0; > > This READ_ONCE is going to force the compiler to use byte accesses. > What's wrong with using a plain memcpy()? > It's undefined behavior when the source can be concurrently modified. Compilers can assume that it's not, and remove the memcpy() (instead just using the source data directly) if they can prove that the destination array is never modified again before it goes out of scope. Do you have any suggestions that don't involve undefined behavior? - Eric
Powered by blists - more mailing lists