In mips64, we are facing same issue that of AArch64
It is giving error in external library, but as per I understand
MSan won't instrument glibc and other external libraries.
Could someone throw some light on it?
Differential D17503
[MSAN] Mark dlerror.cc expected failure for MIPS mohit.bhakkad on Feb 22 2016, 4:52 AM. Authored by
Details
In mips64, we are facing same issue that of AArch64 It is giving error in external library, but as per I understand
Diff Detail
Event TimelineComment Actions This test checks that dlerror() unpoisons the string it returns. glibc is indeed not instrumented, so some implementations could trigger false positives by calling strcmp() on internal strings are not known to be fully initialized. I'm fine with excluding this test on MIPS. Comment Actions I'm dealing with the same thing on PPC64, and I've debugged the issue. Here's the explanation:
As you might have noticed, it works just fine on x86_64. This is because on x86_64, gcc optimizes the strcmp in libdl.so by converting it to repz cmpsb, avoiding an actual function call. Since AArch64/MIPS64/PowerPC64 don't have an optimized strcmp, they don't dodge the bullet. Basically, x86 works by accident, and will stop working if you compile glibc with -O0... As for fixing this issue - the only thing I can think of is to have a TLS variable __msan_in_libcall that's set for the duration of dlerror and other funny calls, and checked in interceptors, which will then disable all error checking. Not sure how workable that is. Thoughts? Comment Actions Thank you for the investigation! Comment Actions Huh, that actually sounds simpler than I thought. I'll wait with commiting D19205 and try that first. |