public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/63961] New: Use-after-free in constexpr.c
@ 2014-11-19 12:44 y.gribov at samsung dot com
2014-11-19 13:04 ` [Bug c++/63961] " trippels at gcc dot gnu.org
0 siblings, 1 reply; 2+ messages in thread
From: y.gribov at samsung dot com @ 2014-11-19 12:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63961
Bug ID: 63961
Summary: Use-after-free in constexpr.c
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: y.gribov at samsung dot com
CC: jason at redhat dot com
Host: x86_64-unknown-linux-gnu
/home/ygribov/build/gcc-master/./gcc/xgcc -shared-libgcc
-B/home/ygribov/build/gcc-master/./gcc -nostdinc++
-L/home/ygribov/build/gcc-master/x86_64-unknown-linux-gnu/libstdc++-v3/src
-L/home/ygribov/build/gcc-master/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/ygribov/build/gcc-master/x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/home/ygribov/install/gcc-master/x86_64-unknown-linux-gnu/bin/
-B/home/ygribov/install/gcc-master/x86_64-unknown-linux-gnu/lib/ -isystem
/home/ygribov/install/gcc-master/x86_64-unknown-linux-gnu/include -isystem
/home/ygribov/install/gcc-master/x86_64-unknown-linux-gnu/sys-include -x
c++-header -nostdinc++ -g -O2 -D_GNU_SOURCE
-I/home/ygribov/build/gcc-master/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu
-I/home/ygribov/build/gcc-master/x86_64-unknown-linux-gnu/libstdc++-v3/include
-I/home/ygribov/src/gcc-master/libstdc++-v3/libsupc++ -O2 -g -std=gnu++0x
/home/ygribov/src/gcc-master/libstdc++-v3/include/precompiled/stdc++.h \
-o x86_64-unknown-linux-gnu/bits/stdc++.h.gch/O2ggnu++0x.gch
=================================================================
==26744==ERROR: AddressSanitizer: heap-use-after-free on address 0x611000d21788
at pc 0x000000cde441 bp 0x7fffc3426c90 sp 0x7fffc3426c88
READ of size 8 at 0x611000d21788 thread T0
#0 0xcde440 in cxx_eval_store_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2552
#1 0xcd6bcf in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2942
#2 0xcd6749 in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2953
#3 0xcd46ce in cxx_eval_call_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:1328
#4 0xcd6d9a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2864
#5 0xcd962a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2922
#6 0xcd6988 in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2985
#7 0xcd7d9f in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:3173
#8 0xcd2b6b in cxx_bind_parameters_in_call
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:1071
#9 0xcd2b6b in cxx_eval_call_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:1234
#10 0xcd6d9a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2864
#11 0xcd962a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2922
#12 0xcd95e8 in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:3035
#13 0xcde225 in cxx_eval_store_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2538
#14 0xcd6bcf in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2942
#15 0xcd6749 in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2953
#16 0xcd665d in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2966
#17 0xcd46ce in cxx_eval_call_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:1328
#18 0xcd6d9a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2864
#19 0xcd962a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2922
#20 0xcd6988 in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2985
#21 0xcd7d9f in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:3173
#22 0xcd7d9f in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:3173
#23 0xcd2b6b in cxx_bind_parameters_in_call
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:1071
#24 0xcd2b6b in cxx_eval_call_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:1234
#25 0xcd6d9a in cxx_eval_constant_expression
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2864
#26 0xce5189 in cxx_eval_outermost_constant_expr
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:3340
#27 0xcec547 in maybe_constant_value(tree_node*, tree_node*)
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:3453
#28 0xb93653 in finish_static_assert(tree_node*, tree_node*, unsigned int,
bool) /home/ygribov/src/gcc-master/gcc/cp/semantics.c:7046
#29 0xa477fb in cp_parser_static_assert
/home/ygribov/src/gcc-master/gcc/cp/parser.c:12139
#30 0xa7f2ec in cp_parser_member_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:20673
#31 0xa1ad11 in cp_parser_member_specification_opt
/home/ygribov/src/gcc-master/gcc/cp/parser.c:20542
#32 0xa1ad11 in cp_parser_class_specifier_1
/home/ygribov/src/gcc-master/gcc/cp/parser.c:19734
#33 0xa1ad11 in cp_parser_class_specifier
/home/ygribov/src/gcc-master/gcc/cp/parser.c:19970
#34 0xa1ad11 in cp_parser_type_specifier
/home/ygribov/src/gcc-master/gcc/cp/parser.c:14630
#35 0xa21cc2 in cp_parser_decl_specifier_seq
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11864
#36 0xa798d3 in cp_parser_simple_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11454
#37 0xa7aa6b in cp_parser_block_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11403
#38 0xa25e51 in cp_parser_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11300
#39 0xa9826e in cp_parser_declaration_seq_opt
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11186
#40 0xa999a4 in cp_parser_namespace_body
/home/ygribov/src/gcc-master/gcc/cp/parser.c:16166
#41 0xa999a4 in cp_parser_namespace_definition
/home/ygribov/src/gcc-master/gcc/cp/parser.c:16147
#42 0xa26127 in cp_parser_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11288
#43 0xa9826e in cp_parser_declaration_seq_opt
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11186
#44 0xa999a4 in cp_parser_namespace_body
/home/ygribov/src/gcc-master/gcc/cp/parser.c:16166
#45 0xa999a4 in cp_parser_namespace_definition
/home/ygribov/src/gcc-master/gcc/cp/parser.c:16147
#46 0xa26127 in cp_parser_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11288
#47 0xa9826e in cp_parser_declaration_seq_opt
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11186
#48 0xa999a4 in cp_parser_namespace_body
/home/ygribov/src/gcc-master/gcc/cp/parser.c:16166
#49 0xa999a4 in cp_parser_namespace_definition
/home/ygribov/src/gcc-master/gcc/cp/parser.c:16147
#50 0xa26127 in cp_parser_declaration
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11288
#51 0xa9826e in cp_parser_declaration_seq_opt
/home/ygribov/src/gcc-master/gcc/cp/parser.c:11186
#52 0xa98f88 in cp_parser_translation_unit
/home/ygribov/src/gcc-master/gcc/cp/parser.c:4101
#53 0xa98f88 in c_parse_file()
/home/ygribov/src/gcc-master/gcc/cp/parser.c:32197
#54 0xdaffde in c_common_parse_file()
/home/ygribov/src/gcc-master/gcc/c-family/c-opts.c:1039
#55 0x195c1ae in compile_file /home/ygribov/src/gcc-master/gcc/toplev.c:570
#56 0x6ab813 in do_compile /home/ygribov/src/gcc-master/gcc/toplev.c:2040
#57 0x6ab813 in toplev::main(int, char**)
/home/ygribov/src/gcc-master/gcc/toplev.c:2137
#58 0x6af382 in main /home/ygribov/src/gcc-master/gcc/main.c:38
#59 0x2b18a6d7376c in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x2176c)
#60 0x6aff30 (/home/ygribov/build/gcc-master/gcc/cc1plus+0x6aff30)
0x611000d21788 is located 200 bytes inside of 208-byte region
[0x611000d216c0,0x611000d21790)
freed by thread T0 here:
#0 0x725a1a in __interceptor_free
/home/ygribov/src/gcc-master/libsanitizer/asan/asan_malloc_linux.cc:28
#1 0xcee8b9 in hash_table<hash_map<tree_node*, tree_node*,
default_hashmap_traits>::hash_entry, xcallocator,
true>::find_slot_with_hash(tree_node* const&, unsigned int, insert_option)
/home/ygribov/src/gcc-master/gcc/hash-table.h:1455
previously allocated by thread T0 here:
#0 0x725e21 in __interceptor_calloc
/home/ygribov/src/gcc-master/libsanitizer/asan/asan_malloc_linux.cc:54
#1 0x2c299a0 in xcalloc
/home/ygribov/src/gcc-master/libiberty/xmalloc.c:162
SUMMARY: AddressSanitizer: heap-use-after-free
/home/ygribov/src/gcc-master/gcc/cp/constexpr.c:2552 cxx_eval_store_expression
Shadow bytes around the buggy address:
0x0c228019c2a0: fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c228019c2b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c228019c2c0: fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa
0x0c228019c2d0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
0x0c228019c2e0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x0c228019c2f0: fd[fd]fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c228019c300: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c228019c310: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c228019c320: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
0x0c228019c330: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c228019c340: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
==26744==ABORTING
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Bug c++/63961] Use-after-free in constexpr.c
2014-11-19 12:44 [Bug c++/63961] New: Use-after-free in constexpr.c y.gribov at samsung dot com
@ 2014-11-19 13:04 ` trippels at gcc dot gnu.org
0 siblings, 0 replies; 2+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-11-19 13:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63961
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |trippels at gcc dot gnu.org
Resolution|--- |DUPLICATE
--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
dup.
*** This bug has been marked as a duplicate of bug 63928 ***
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-19 13:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-19 12:44 [Bug c++/63961] New: Use-after-free in constexpr.c y.gribov at samsung dot com
2014-11-19 13:04 ` [Bug c++/63961] " trippels at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).