Details
-
Bug
-
Resolution: Won't Do
-
P3: Somewhat important
-
None
-
6.9
-
None
Description
valgrind reports a 2byte read overflow in the hash computation.
The report is generated by running a modified documentviewer example that
can load 3d meshes
==143259== Invalid read of size 16 ==143259== at 0x6A36D6F: _mm_loadu_si128 (emmintrin.h:706) ==143259== by 0x6A36D6F: loadu128<(ZeroExtension)0> (qhash.cpp:405) ==143259== by 0x6A36D6F: unsigned long aeshash128_lt16<(ZeroExtension)0>(long long __vector(2), long long __vector(2) const*, long long __vector(2) const*, unsigned long) (qhash.cpp:528) ==143259== by 0x6A36EE9: unsigned long aeshash128<(ZeroExtension)0>(unsigned char const*, unsigned long, unsigned long, unsigned long) (qhash.cpp:693) ==143259== by 0x6A37BA7: unsigned long aeshash<(ZeroExtension)0>(unsigned char const*, unsigned long, unsigned long, unsigned long) (qhash.cpp:714) ==143259== by 0x6A37CA7: qHashBits(void const*, unsigned long, unsigned long) (qhash.cpp:866) ==143259== by 0x6A37CFA: qHash(QStringView, unsigned long) (qhash.cpp:882) ==143259== Address 0x135f1a82 is 18 bytes inside a block of size 32 alloc'd ==143259== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==143259== by 0x6BCEA2C: allocateData(long long) (qarraydata.cpp:139) ==143259== by 0x6BCEC8E: allocateHelper(long long, long long, long long, QArrayData::AllocationOption) (qarraydata.cpp:181) ==143259== by 0x6BCED80: QArrayData::allocate2(QArrayData**, long long, QArrayData::AllocationOption) (qarraydata.cpp:220) ==143259== by 0x6BA7B7D: QTypedArrayData<char16_t>::allocate(long long, QArrayData::AllocationOption) (qarraydata.h:139)