| "git clone --depth 1 https://github.com/ruby/ruby.git trunk_asan" exit with 0. |
| Cloning into 'trunk_asan'... |
| "./autogen.sh" exit with 0. |
| "autoconf" exit with 0. |
| "/tmp/ruby/src/trunk_asan/configure --prefix=/tmp/ruby/install/trunk_asan --disable-install-doc 'CC=clang-17' 'cflags=-fsanitize=address -fno-omit-frame-pointer -DUSE_MN_THREADS=0'" exit with 0. |
| "make update-download -j16" exit with 0. |
| make: rev-parse: No such file or directory |
| "make update-src -j16" exit with 0. |
| "make after-update -j16" exit with 0. |
| + cp /tmp/ruby/src/trunk_asan/enc/jis/props.h.blt /tmp/ruby/src/trunk_asan/enc/jis/props.h |
| "make miniruby -j16" exit with 0. |
| /tmp/ruby/src/trunk_asan/process.c:3857:1: warning: unused function 'has_privilege' [-Wunused-function] |
| 3857 | has_privilege(void) |
| | ^~~~~~~~~~~~~ |
| 1 warning generated. |
| "make ruby -j16" exit with 512. |
| ================================================================= |
| ==3935307==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x725e47724265 at pc 0x630ce12b719a bp 0x7ffd5aadd160 sp 0x7ffd5aadc900 |
| READ of size 12 at 0x725e47724265 thread T0 |
| #0 0x630ce12b7199 in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) (/tmp/ruby/build/trunk_asan/miniruby+0x188199) (BuildId: e8389985349d662ae7bd139596ef18f3c2837088) |
| #1 0x630ce12b75ed in bcmp (/tmp/ruby/build/trunk_asan/miniruby+0x1885ed) (BuildId: e8389985349d662ae7bd139596ef18f3c2837088) |
| #2 0x630ce1b85501 in pm_strpbrk_cache_update /tmp/ruby/src/trunk_asan/prism/util/pm_strpbrk.c:64:9 |
| #3 0x630ce1b85501 in scan_strpbrk_ascii /tmp/ruby/src/trunk_asan/prism/util/pm_strpbrk.c:205:5 |
| #4 0x630ce1b85501 in pm_strpbrk /tmp/ruby/src/trunk_asan/prism/util/pm_strpbrk.c:414:9 |
| #5 0x630ce1ba27d6 in parser_lex /tmp/ruby/src/trunk_asan/prism/prism.c:12064:41 |
| #6 0x630ce1bbe342 in parse_expression_prefix /tmp/ruby/src/trunk_asan/prism/prism.c:18215:13 |
| #7 0x630ce1bb8568 in parse_expression /tmp/ruby/src/trunk_asan/prism/prism.c:21793:23 |
| #8 0x630ce1c34b5e in parse_value_expression /tmp/ruby/src/trunk_asan/prism/prism.c:12632:23 |
| #9 0x630ce1c34b5e in parse_starred_expression /tmp/ruby/src/trunk_asan/prism/prism.c:12724:12 |
| #10 0x630ce1c34b5e in parse_assignment_values /tmp/ruby/src/trunk_asan/prism/prism.c:20465:24 |
| #11 0x630ce1bd5b31 in parse_expression_infix /tmp/ruby/src/trunk_asan/prism/prism.c:20810:40 |
| #12 0x630ce1bb87fd in parse_expression /tmp/ruby/src/trunk_asan/prism/prism.c:21839:16 |
| #13 0x630ce1bacf1a in parse_statements /tmp/ruby/src/trunk_asan/prism/prism.c:13347:27 |
| #14 0x630ce1bccb53 in parse_expression_prefix /tmp/ruby/src/trunk_asan/prism/prism.c:18820:30 |
| #15 0x630ce1bb8568 in parse_expression /tmp/ruby/src/trunk_asan/prism/prism.c:21793:23 |
| #16 0x630ce1bacf1a in parse_statements /tmp/ruby/src/trunk_asan/prism/prism.c:13347:27 |
| #17 0x630ce1b89282 in parse_program /tmp/ruby/src/trunk_asan/prism/prism.c:22037:40 |
| #18 0x630ce1b89282 in pm_parse /tmp/ruby/src/trunk_asan/prism/prism.c:22594:23 |
| #19 0x630ce146be78 in pm_parse_file /tmp/ruby/src/trunk_asan/prism_compile.c:11522:23 |
| #20 0x630ce16f7b0b in load_iseq_eval /tmp/ruby/src/trunk_asan/load.c:736:27 |
| #21 0x630ce16f1d90 in require_internal /tmp/ruby/src/trunk_asan/load.c:1341:21 |
| #22 0x630ce16efe0a in rb_require_string_internal /tmp/ruby/src/trunk_asan/load.c:1451:22 |
| #23 0x630ce16efe0a in rb_require_string /tmp/ruby/src/trunk_asan/load.c:1437:12 |
| #24 0x630ce1ac6dc7 in vm_call_cfunc_with_frame_ /tmp/ruby/src/trunk_asan/vm_insnhelper.c:3905:11 |
| #25 0x630ce1a66f20 in vm_sendish /tmp/ruby/src/trunk_asan/vm_insnhelper.c:6127:15 |
| #26 0x630ce1a66f20 in vm_exec_core /tmp/ruby/build/trunk_asan/../../src/trunk_asan/insns.def:906:11 |
| #27 0x630ce1a555f1 in rb_vm_exec /tmp/ruby/src/trunk_asan/vm.c:2799:22 |
| #28 0x630ce1a9f305 in rb_iseq_eval_main /tmp/ruby/src/trunk_asan/vm.c:3065:11 |
| #29 0x630ce15d6d6f in rb_ec_exec_node /tmp/ruby/src/trunk_asan/eval.c:283:9 |
| #30 0x630ce15d6d6f in ruby_run_node /tmp/ruby/src/trunk_asan/eval.c:321:30 |
| #31 0x630ce1376b66 in rb_main /tmp/ruby/src/trunk_asan/main.c:42:12 |
| #32 0x630ce1376b66 in main /tmp/ruby/src/trunk_asan/main.c:62:12 |
| #33 0x725e4922a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 |
| #34 0x725e4922a28a in __libc_start_main csu/../csu/libc-start.c:360:3 |
| #35 0x630ce129a934 in _start (/tmp/ruby/build/trunk_asan/miniruby+0x16b934) (BuildId: e8389985349d662ae7bd139596ef18f3c2837088) |
| Address 0x725e47724265 is located in stack of thread T0 at offset 613 in frame |
| #0 0x630ce1b8fdef in parser_lex /tmp/ruby/src/trunk_asan/prism/prism.c:9868 |
| This frame has 11 object(s): |
| [32, 96) 'lex_mode.i8451' (line 226) |
| [128, 152) 'buffer.i' (line 9365) |
| [192, 232) 'lex_mode.i7463.sroa.12' (line 226) |
| [272, 296) 'key.i' (line 7612) |
| [336, 337) 'delimiter1779' (line 10999) |
| [352, 384) 'token_buffer' (line 11304) |
| [416, 472) 'token_buffer2763' (line 11481) |
| [512, 544) 'token_buffer3157' (line 11729) |
| [576, 584) 'start3603' (line 11995) |
| [608, 613) 'breakpoints3730' (line 12057) <== Memory access at offset 613 overflows this variable |
| [640, 672) 'token_buffer3749' (line 12065) |
| HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork |
| (longjmp and C++ exceptions *are* supported) |
| SUMMARY: AddressSanitizer: stack-buffer-overflow (/tmp/ruby/build/trunk_asan/miniruby+0x188199) (BuildId: e8389985349d662ae7bd139596ef18f3c2837088) in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) |
| Shadow bytes around the buggy address: |
| 0x725e47723f80: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 |
| 0x725e47724000: f1 f1 f1 f1 f8 f8 f8 f8 f8 f8 f8 f8 f2 f2 f2 f2 |
| 0x725e47724080: f8 f8 f8 f2 f2 f2 f2 f2 f8 f8 f8 f8 f8 f2 f2 f2 |
| 0x725e47724100: f2 f2 f8 f8 f8 f2 f2 f2 f2 f2 f8 f2 f8 f8 f8 f8 |
| 0x725e47724180: f2 f2 f2 f2 f8 f8 f8 f8 f8 f8 f8 f2 f2 f2 f2 f2 |
| =>0x725e47724200: f8 f8 f8 f8 f2 f2 f2 f2 f8 f2 f2 f2[05]f2 f2 f2 |
| 0x725e47724280: f8 f8 f8 f8 f3 f3 f3 f3 00 00 00 00 00 00 00 00 |
| 0x725e47724300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 0x725e47724380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| 0x725e47724400: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 |
| 0x725e47724480: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 |
| 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 |
| Freed heap region: fd |
| Stack left redzone: f1 |
| Stack mid redzone: f2 |
| Stack right redzone: f3 |
| 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 |
| Left alloca redzone: ca |
| Right alloca redzone: cb |
| ==3935307==ABORTING |
| /tmp/ruby/src/trunk_asan/lib/optparse.rb: [BUG] ASAN error |
| ruby 4.1.0dev (2026-03-17T15:14:11Z master 5026acfb64) +PRISM [x86_64-linux] |
| -- Control frame information ----------------------------------------------- |
| c:0004 p:---- s:0020 e:000019 l:y b:---- DUMMY [FINISH] |
| c:0003 p:---- s:0017 e:000016 l:y b:---- CFUNC :require |
| c:0002 p:0011 s:0012 E:000420 l:n b:---- EVAL /tmp/ruby/src/trunk_asan/tool/generic_erb.rb:7 [FINISH] |
| c:0001 p:0000 s:0003 E:0015a0 l:y b:---- DUMMY [FINISH] |
| -- Ruby level backtrace information ---------------------------------------- |
| /tmp/ruby/src/trunk_asan/tool/generic_erb.rb:7:in '<main>' |
| /tmp/ruby/src/trunk_asan/tool/generic_erb.rb:7:in 'require' |
| -- Threading information --------------------------------------------------- |
| Total ractor count: 1 |
| Ruby thread count for this ractor: 1 |
| -- C level backtrace information ------------------------------------------- |
| ./miniruby(___interceptor_backtrace) [0x630ce12e0d19] |
| /tmp/ruby/build/trunk_asan/miniruby(rb_print_backtrace+0x14) [0x630ce1afb554] /tmp/ruby/src/trunk_asan/vm_dump.c:1105 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_vm_bugreport) /tmp/ruby/src/trunk_asan/vm_dump.c:1450 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_bug_without_die_internal+0x2c5) [0x630ce15bda35] /tmp/ruby/src/trunk_asan/error.c:1098 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_bug_without_die+0x12c) [0x630ce15bd6cc] /tmp/ruby/src/trunk_asan/error.c:1107 |
| ./miniruby(0x630ce135d23a) [0x630ce135d23a] |
| ./miniruby(0x630ce133dcbf) [0x630ce133dcbf] |
| ./miniruby(0x630ce1340d4d) [0x630ce1340d4d] |
| ./miniruby(0x630ce12b71ba) [0x630ce12b71ba] |
| ./miniruby(___interceptor_bcmp) [0x630ce12b75ee] |
| /tmp/ruby/build/trunk_asan/miniruby(pm_strpbrk_cache_update+0x17) [0x630ce1b85502] /tmp/ruby/src/trunk_asan/prism/util/pm_strpbrk.c:64 |
| /tmp/ruby/build/trunk_asan/miniruby(scan_strpbrk_ascii) /tmp/ruby/src/trunk_asan/prism/util/pm_strpbrk.c:205 |
| /tmp/ruby/build/trunk_asan/miniruby(pm_strpbrk) /tmp/ruby/src/trunk_asan/prism/util/pm_strpbrk.c:414 |
| /tmp/ruby/build/trunk_asan/miniruby(parser_lex+0x129f7) [0x630ce1ba27d7] /tmp/ruby/src/trunk_asan/prism/prism.c:12064 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_expression_prefix+0x47d3) [0x630ce1bbe343] /tmp/ruby/src/trunk_asan/prism/prism.c:18215 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_expression+0x39) [0x630ce1bb8569] /tmp/ruby/src/trunk_asan/prism/prism.c:21793 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_value_expression+0x13) [0x630ce1c34b5f] /tmp/ruby/src/trunk_asan/prism/prism.c:12632 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_starred_expression) /tmp/ruby/src/trunk_asan/prism/prism.c:12724 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_assignment_values) /tmp/ruby/src/trunk_asan/prism/prism.c:20465 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_expression_infix+0x10b2) [0x630ce1bd5b32] /tmp/ruby/src/trunk_asan/prism/prism.c:20810 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_expression+0x2ce) [0x630ce1bb87fe] /tmp/ruby/src/trunk_asan/prism/prism.c:21839 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_statements+0x79b) [0x630ce1bacf1b] /tmp/ruby/src/trunk_asan/prism/prism.c:13347 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_expression_prefix+0x12fe4) [0x630ce1bccb54] /tmp/ruby/src/trunk_asan/prism/prism.c:18820 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_expression+0x39) [0x630ce1bb8569] /tmp/ruby/src/trunk_asan/prism/prism.c:21793 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_statements+0x79b) [0x630ce1bacf1b] /tmp/ruby/src/trunk_asan/prism/prism.c:13347 |
| /tmp/ruby/build/trunk_asan/miniruby(parse_program+0x193) [0x630ce1b89283] /tmp/ruby/src/trunk_asan/prism/prism.c:22037 |
| /tmp/ruby/build/trunk_asan/miniruby(pm_parse) /tmp/ruby/src/trunk_asan/prism/prism.c:22594 |
| /tmp/ruby/build/trunk_asan/miniruby(pm_parse_file+0x1d9) [0x630ce146be79] /tmp/ruby/src/trunk_asan/prism_compile.c:11522 |
| /tmp/ruby/build/trunk_asan/miniruby(load_iseq_eval+0x26c) [0x630ce16f7b0c] /tmp/ruby/src/trunk_asan/load.c:736 |
| /tmp/ruby/build/trunk_asan/miniruby(require_internal+0x1141) [0x630ce16f1d91] /tmp/ruby/src/trunk_asan/load.c:1341 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_require_string_internal+0xcc) [0x630ce16efe0b] /tmp/ruby/src/trunk_asan/load.c:1451 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_require_string) /tmp/ruby/src/trunk_asan/load.c:1437 |
| /tmp/ruby/build/trunk_asan/miniruby(vm_cfp_consistent_p+0x0) [0x630ce1ac6dc8] /tmp/ruby/src/trunk_asan/vm_insnhelper.c:3905 |
| /tmp/ruby/build/trunk_asan/miniruby(vm_call_cfunc_with_frame_) /tmp/ruby/src/trunk_asan/vm_insnhelper.c:3907 |
| /tmp/ruby/build/trunk_asan/miniruby(vm_sendish+0x267) [0x630ce1a66f21] /tmp/ruby/src/trunk_asan/vm_insnhelper.c:6127 |
| /tmp/ruby/build/trunk_asan/miniruby(vm_exec_core) ../../src/trunk_asan/insns.def:906 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_vm_exec+0x4e2) [0x630ce1a555f2] /tmp/ruby/src/trunk_asan/vm.c:2799 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_iseq_eval_main+0x2d6) [0x630ce1a9f306] /tmp/ruby/src/trunk_asan/vm.c:3065 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_ec_exec_node+0x142) [0x630ce15d6d70] /tmp/ruby/src/trunk_asan/eval.c:283 |
| /tmp/ruby/build/trunk_asan/miniruby(ruby_run_node) /tmp/ruby/src/trunk_asan/eval.c:321 |
| /tmp/ruby/build/trunk_asan/miniruby(rb_main+0x25) [0x630ce1376b67] /tmp/ruby/src/trunk_asan/main.c:42 |
| /tmp/ruby/build/trunk_asan/miniruby(main) /tmp/ruby/src/trunk_asan/main.c:62 |
| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_call_main+0x7a) [0x725e4922a1ca] ../sysdeps/nptl/libc_start_call_main.h:58 |
| /lib/x86_64-linux-gnu/libc.so.6(call_init+0x0) [0x725e4922a28b] ../csu/libc-start.c:360 |
| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main_impl) ../csu/libc-start.c:347 |
| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main) (null):0 |
| ./miniruby(_start) [0x630ce129a935] |
| -- Other runtime information ----------------------------------------------- |
| * Loaded script: /tmp/ruby/src/trunk_asan/tool/generic_erb.rb |
| * Ruby Box: disabled |
| * Loaded features: |
| 0 enumerator.so |
| 1 monitor.so |
| 2 thread.rb |
| 3 fiber.so |
| 4 rational.so |
| 5 complex.so |
| 6 pathname.so |
| 7 ruby2_keywords.rb |
| 8 set.rb |
| 9 /tmp/ruby/src/trunk_asan/lib/erb/version.rb |
| 10 /tmp/ruby/src/trunk_asan/lib/erb/compiler.rb |
| 11 /tmp/ruby/src/trunk_asan/lib/erb/def_method.rb |
| 12 /tmp/ruby/src/trunk_asan/lib/cgi/escape.rb |
| 13 /tmp/ruby/src/trunk_asan/lib/erb/util.rb |
| 14 /tmp/ruby/src/trunk_asan/lib/erb.rb |
| make: *** [uncommon.mk:1302: builtin_binary.rbbin] Error 1 |