commit 10e84a28ed9bc1ff18518bada28a488631914678
parent 815d8fb21cc0ad1aadbe543f519fcf7899047e9c
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sat, 3 Mar 2018 01:08:15 +0530
Both src and dst should be alignment checked separately
The following pattern passes the current check:
src - 1010
dst - 0101
mask - 1111
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/nnn.c b/nnn.c
@@ -488,7 +488,7 @@ xstrlcpy(char *dest, const char *src, size_t n)
* To enable -O3 ensure src and dest are 16-byte aligned
* More info: http://www.felixcloutier.com/x86/MOVDQA.html
*/
- if ((n >= lsize) && !((ulong)src & (ulong)dest & _ALIGNMENT_MASK)) {
+ if ((n >= lsize) && (((ulong)src & _ALIGNMENT_MASK) == 0 && ((ulong)dest & _ALIGNMENT_MASK) == 0)) {
s = (ulong *)src;
d = (ulong *)dest;
blocks = n >> _WSHIFT;