ASAN: Disable SSE4.1 code in qstricmp because of heap-buffer-overflow

Although it is safe to slightly overread a string (provided it doesn't
cross page boundaries), ASAN is extremely picky about this kind of
behavior. So, do not run with this vectorized code when ASAN is
enabled.

Task-number: QTBUG-70269
Change-Id: I2b59b524d608afec8985227285feab55158d7247
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Erik Verbruggen 2018-08-30 15:27:17 +02:00
parent 42a68ee9dd
commit 028727c20c

View File

@ -432,7 +432,7 @@ int qstricmp(const char *str1, const char *str2)
return int(Incomplete);
};
#ifdef __SSE4_1__
#if defined(__SSE4_1__) && !(defined(__SANITIZE_ADDRESS__) || QT_HAS_FEATURE(address_sanitizer))
enum { PageSize = 4096, PageMask = PageSize - 1 };
const __m128i zero = _mm_setzero_si128();
forever {