Comment #6 on issue 189 by [email protected]: support swapcontext
https://code.google.com/p/address-sanitizer/issues/detail?id=189
Here is false positive.
When you destroy a std::exception_ptr allocated from another stack without
rethrowing it, then it crashes.
GCC 4.9.2 (on Gentoo). Boost 1.56.0 compiled with C++11 support.
{{{
==26409==WARNING: ASan is ignoring requested __asan_handle_no_return: stack
top: 0x7fff0420b000; bottom 0x63100000f000; size: 0x1cef041fc000
(31812891951104)
False positive error reports may follow
For details see
http://code.google.com/p/address-sanitizer/issues/detail?id=189
=================================================================
==26409==ERROR: AddressSanitizer: stack-buffer-underflow on address
0x6310000104a0 at pc 0x7fd9fccdcde3 bp 0x631000010320 sp 0x63100000fac8
WRITE of size 240 at 0x6310000104a0 thread T0
#0 0x7fd9fccdcde2
(/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/libasan.so.1+0x2fde2)
#1 0x7fd9fbe8b046 in _Unwind_Resume
(/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/libgcc_s.so.1+0x10046)
#2 0x406dc9 in
my_coroutine(boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>&)
(/tmp/a.out+0x406dc9)
#3 0x41e7f4 in
boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>,
std::__exception_ptr::exception_ptr, void
(&)(boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>&),
boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits>
::run(std::__exception_ptr::exception_ptr*) (/tmp/a.out+0x41e7f4)
#4 0x41bb88 in void
boost::coroutines::detail::trampoline_push<boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>,
std::__exception_ptr::exception_ptr, void
(&)(boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>&),
boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits>
>(long) (/tmp/a.out+0x41bb88)
#5 0x7fd9fc89e710 in make_fcontext
(/usr/lib64/libboost_context-cxx11-gcc4_9_2.so.1.56.0+0x710)
0x6310000104a0 is located 64672 bytes inside of 65536-byte region
[0x631000000800,0x631000010800)
allocated by thread T0 here:
#0 0x7fd9fcd04787 in malloc
(/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/libasan.so.1+0x57787)
#1 0x414890 in
boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits>::allocate(boost::coroutines::stack_context&,
unsigned long) (/tmp/a.out+0x414890)
#2 0x40d975 in
boost::coroutines::push_coroutine<std::__exception_ptr::exception_ptr>::push_coroutine<void
(&)(boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>&)>(void
(&)(boost::coroutines::pull_coroutine<std::__exception_ptr::exception_ptr>&),
boost::coroutines::attributes const&) (/tmp/a.out+0x40d975)
#3 0x406ecf in main (/tmp/a.out+0x406ecf)
#4 0x7fd9fbaf8dc4 in __libc_start_main (/lib64/libc.so.6+0x24dc4)
}}}
Attachments:
test_coroutine.cpp 346 bytes
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.