[compiler-rt] r200464 - [msan] Intercept *getxattr and *listxattr.

Dmitri Gribenko gribozavr at gmail.com
Sun Mar 2 07:13:30 PST 2014


On Thu, Jan 30, 2014 at 12:21 PM, Sergey Matveev <earthdok at google.com> wrote:
> Author: smatveev
> Date: Thu Jan 30 06:21:12 2014
> New Revision: 200464
>
> URL: http://llvm.org/viewvc/llvm-project?rev=200464&view=rev
> Log:
> [msan] Intercept *getxattr and *listxattr.
>
> Added:
>     compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr.cc
>     compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr_test_root/
>     compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr_test_root/a
> Modified:
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_syscalls.inc
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h
>
> Added: compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr.cc
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr.cc?rev=200464&view=auto
> ==============================================================================
> --- compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr.cc (added)
> +++ compiler-rt/trunk/lib/msan/lit_tests/Linux/xattr.cc Thu Jan 30 06:21:12 2014
> @@ -0,0 +1,142 @@
> +// RUN: %clangxx_msan -m64 -O0 %s -o %t && %t %p 2>&1
> +// RUN: %clangxx_msan -m64 -O0 -D_FILE_OFFSET_BITS=64 %s -o %t && %t %p 2>&1
> +// RUN: %clangxx_msan -m64 -O3 %s -o %t && %t %p 2>&1

Hi Sergey,

This test fails on CentOS 6.5:

FAIL: MemorySanitizer :: Linux/xattr.cc (5 of 62)
******************** TEST 'MemorySanitizer :: Linux/xattr.cc' FAILED
********************
Script:
--
/home/llvmbb/clang/build-cmake-r+a/./bin/clang --driver-mode=g++
-fsanitize=memory -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -g -m64 -m64 -O0
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux/xattr.cc
-o /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp
&& /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux 2>&1
/home/llvmbb/clang/build-cmake-r+a/./bin/clang --driver-mode=g++
-fsanitize=memory -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -g -m64 -m64 -O0 -D_FILE_OFFSET_BITS=64
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux/xattr.cc
-o /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp
&& /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux 2>&1
/home/llvmbb/clang/build-cmake-r+a/./bin/clang --driver-mode=g++
-fsanitize=memory -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -g -m64 -m64 -O3
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux/xattr.cc
-o /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp
&& /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux 2>&1
--
Exit Code: 77

Command Output (stdout):
--
==12910== WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7f7f3031c249 in test_get(long (*)(char const*, char*,
unsigned long), char const*, unsigned long)
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux/xattr.cc:112
    #1 0x7f7f3031c932 in main
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux/xattr.cc:136
    #2 0x7f7f2ef4ad1c in __libc_start_main (/lib64/libc.so.6+0x1ed1c)
    #3 0x7f7f3031a888 in _start
(/home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/test/msan/Linux/Output/xattr.cc.tmp+0x6f888)

SUMMARY: MemorySanitizer: use-of-uninitialized-value
/home/llvmbb/clang/llvm/projects/compiler-rt/test/msan/Linux/xattr.cc:112
test_get(long (*)(char const*, char*, unsigned long), char const*,
unsigned long)
Exiting

--

I can provide ssh access to this machine to investigate, if this helps.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/



More information about the llvm-commits mailing list