[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-14 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

Martin Liška  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Martin Liška  ---
Fixed on trunk.

[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-14 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

--- Comment #6 from Martin Liška  ---
Author: marxin
Date: Wed Aug 14 08:47:11 2019
New Revision: 274426

URL: https://gcc.gnu.org/viewcvs?rev=274426=gcc=rev
Log:
Libsanitizer merge from trunk r368656.

2019-08-14  Martin Liska  

PR sanitizer/89832
PR sanitizer/91325
* All source files: Merge from upstream 368656.

Added:
trunk/libsanitizer/asan/asan_activation.cpp
trunk/libsanitizer/asan/asan_allocator.cpp
trunk/libsanitizer/asan/asan_debugging.cpp
trunk/libsanitizer/asan/asan_descriptions.cpp
trunk/libsanitizer/asan/asan_errors.cpp
trunk/libsanitizer/asan/asan_fake_stack.cpp
trunk/libsanitizer/asan/asan_flags.cpp
trunk/libsanitizer/asan/asan_fuchsia.cpp
trunk/libsanitizer/asan/asan_globals.cpp
trunk/libsanitizer/asan/asan_globals_win.cpp
trunk/libsanitizer/asan/asan_interceptors.cpp
trunk/libsanitizer/asan/asan_interceptors_memintrinsics.cpp
trunk/libsanitizer/asan/asan_interceptors_vfork.S
trunk/libsanitizer/asan/asan_linux.cpp
trunk/libsanitizer/asan/asan_mac.cpp
trunk/libsanitizer/asan/asan_malloc_linux.cpp
trunk/libsanitizer/asan/asan_malloc_mac.cpp
trunk/libsanitizer/asan/asan_malloc_win.cpp
trunk/libsanitizer/asan/asan_memory_profile.cpp
trunk/libsanitizer/asan/asan_new_delete.cpp
trunk/libsanitizer/asan/asan_poisoning.cpp
trunk/libsanitizer/asan/asan_posix.cpp
trunk/libsanitizer/asan/asan_preinit.cpp
trunk/libsanitizer/asan/asan_premap_shadow.cpp
trunk/libsanitizer/asan/asan_report.cpp
trunk/libsanitizer/asan/asan_rtems.cpp
trunk/libsanitizer/asan/asan_rtl.cpp
trunk/libsanitizer/asan/asan_shadow_setup.cpp
trunk/libsanitizer/asan/asan_stack.cpp
trunk/libsanitizer/asan/asan_stats.cpp
trunk/libsanitizer/asan/asan_suppressions.cpp
trunk/libsanitizer/asan/asan_thread.cpp
trunk/libsanitizer/asan/asan_win.cpp
trunk/libsanitizer/asan/asan_win_dll_thunk.cpp
trunk/libsanitizer/asan/asan_win_dynamic_runtime_thunk.cpp
trunk/libsanitizer/asan/asan_win_weak_interception.cpp
trunk/libsanitizer/interception/interception_linux.cpp
trunk/libsanitizer/interception/interception_mac.cpp
trunk/libsanitizer/interception/interception_type_test.cpp
trunk/libsanitizer/interception/interception_win.cpp
trunk/libsanitizer/lsan/lsan.cpp
trunk/libsanitizer/lsan/lsan_allocator.cpp
trunk/libsanitizer/lsan/lsan_common.cpp
trunk/libsanitizer/lsan/lsan_common_linux.cpp
trunk/libsanitizer/lsan/lsan_common_mac.cpp
trunk/libsanitizer/lsan/lsan_interceptors.cpp
trunk/libsanitizer/lsan/lsan_linux.cpp
trunk/libsanitizer/lsan/lsan_mac.cpp
trunk/libsanitizer/lsan/lsan_malloc_mac.cpp
trunk/libsanitizer/lsan/lsan_preinit.cpp
trunk/libsanitizer/lsan/lsan_thread.cpp
trunk/libsanitizer/sanitizer_common/sancov_flags.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_allocator.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_allocator_checks.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_allocator_report.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_common.cpp
   
trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S
   
trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S
   
trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S
   
trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S
trunk/libsanitizer/sanitizer_common/sanitizer_common_libcdep.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_common_nolibc.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_coverage_fuchsia.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp
   
trunk/libsanitizer/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_coverage_win_sections.cpp
   
trunk/libsanitizer/sanitizer_common/sanitizer_coverage_win_weak_interception.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_deadlock_detector1.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_deadlock_detector2.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_errno.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_file.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_flag_parser.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_flags.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_fuchsia.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_hash.h
trunk/libsanitizer/sanitizer_common/sanitizer_libc.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_libignore.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_linux.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp
trunk/libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp

[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-04 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

Martin Liška  changed:

   What|Removed |Added

 Status|WAITING |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |marxin at gcc dot 
gnu.org
   Target Milestone|--- |10.0

--- Comment #5 from Martin Liška  ---
Ok, then libsanitizer merge from trunk will fix it. I'm planning to do it in
autumn this year for next GCC 10.1 release.

[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-03 Thread jensseidel at users dot sf.net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

--- Comment #4 from Jens Seidel  ---
LLVM was affected by the same bug. They fixed it. But why is it not
reproducable to everyone?

https://bugs.llvm.org/show_bug.cgi?id=39641

[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-02 Thread jensseidel at users dot sf.net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

--- Comment #3 from Jens Seidel  ---
(In reply to Martin Liška from comment #1)
> Hm, I can't reproduce that with any version of GCC I have:

Was trying it now also on other computers:

On Debian 9 with g++ 6.3 and libc-2.24.so it works well, on Ubuntu 18.04 with
g++ 7.4.0 (libc-2.27.so) and Ubuntu 16.04 with g++-8, g++-7, g++-6, g++-5
(libc-2.23.so) I get:

$ ./main 
==10179==AddressSanitizer CHECK failed:
../../../../src/libsanitizer/asan/asan_interceptors.cc:384
"((__interception::real___cxa_throw)) != (0)" (0x0, 0x0)
#0 0x7f7030b3ac02  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe9c02)
#1 0x7f7030b59595 in __sanitizer::CheckFailed(char const*, int, char
const*, unsigned long long, unsigned long long)
(/usr/lib/x86_64-linux-gnu/libasan.so.4+0x108595)
#2 0x7f7030a8926c in __interceptor___cxa_throw
(/usr/lib/x86_64-linux-gnu/libasan.so.4+0x3826c)
#3 0x7f702cffdc04 in foo /home/seidel/tmp/shlib.cpp:4
#4 0x7f702cffdc12 in bar /home/seidel/tmp/shlib.cpp:13
#5 0x55eb62962bf9 in main /home/seidel/tmp/main.c:11
#6 0x7f703047db96 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
#7 0x55eb62962a89 in _start (/home/seidel/tmp/main+0xa89)

On macOS (x86_64-apple-darwin18.6.0) it works, on SLES 12.0 (Suse) with g++
4.8.5 I get:
$ ./main
==7984== ERROR: AddressSanitizer failed to allocate 0xdfff0001000
(15392894357504) bytes at address 0x02008fff7000 (12)
==7984== ReserveShadowMemoryRange failed while trying to map 0xdfff0001000
bytes. Perhaps you're using ulimit -v
Aborted

My affected system I reported initially is a Ubuntu 16.04 (libc-2.23.so). The
other report refers to a Red Hat system.

What can I do?

[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-02 Thread jensseidel at users dot sf.net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

--- Comment #2 from Jens Seidel  ---
I am using
/lib/x86_64-linux-gnu/libc.so.6 -> libc-2.23.so.

[Bug sanitizer/91325] [ASAN] ASAN hangs at throw if called via dlopen

2019-08-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91325

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2019-08-02
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
Hm, I can't reproduce that with any version of GCC I have:

$ make clean ; make && ./main && echo OK
rm -f libshlib.so main
g++-7 -ggdb3 -fsanitize=address -Wextra -Wall -fPIC -shared -o libshlib.so
shlib.cpp
gcc-7 -ggdb3 -fsanitize=address -Wextra -Wall -o main main.c -ldl
OK

$ make clean ; make && ./main && echo OK
rm -f libshlib.so main
g++-9 -ggdb3 -fsanitize=address -Wextra -Wall -fPIC -shared -o libshlib.so
shlib.cpp
gcc-9 -ggdb3 -fsanitize=address -Wextra -Wall -o main main.c -ldl
OK

Maybe it's related to glibc version:
Name   : glibc 
Version: 2.29-7.3