On 10/7/22 9:46 AM, Ernie Rael wrote:
On 10/6/22 3:39 AM, Bram Moolenaar wrote:
Ernie Rael wrote:

I built ASAN with 9.0.669,

Since I was setup, I did a "make" in testdir. There was one asan problem
and some test failures that didn't seem too troubling:
For an ASAN log to be useful, I need a way to reproduce it. Ideally a
short script.  Or, when it is from running tests, which test.  I then
still have to binary search for the cause (commenting out parts of the
testa), which can take time.

Is there a way to associate an asan.### file with a particular test? I tried doing "ls -lt" and occasionally you can see a some_test.res file interspersed with the asan files. Something like a timestamp (optional?) column in messages would do the trick. That would narrow things down to a few tests.

-ernie

Tracked down the specific test within a particluar test file

   $ make test_listlbr_utf8
   00:00 Executing Test_linebreak_with_list_and_tabs()

This test has a checkered past

   " this was causing a crash
   func Test_linebreak_with_list_and_tabs()

While it's failing here, it there more info I can gather.

=================================================================
==1565972==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60b000001e34 at pc 0x55ef60917392 bp 0x7ffd02091160 sp 0x7ffd02091150
WRITE of size 1 at 0x60b000001e34 thread T0
    #0 0x55ef60917391 in utf_char2bytes /src/tools/vim/src/mbyte.c:2262
    #1 0x55ef60573b67 in win_line /src/tools/vim/src/drawline.c:2824
    #2 0x55ef605a40e4 in win_update /src/tools/vim/src/drawscreen.c:2499
    #3 0x55ef60584096 in update_screen /src/tools/vim/src/drawscreen.c:326
    #4 0x55ef6071a4f3 in redraw_cmd /src/tools/vim/src/ex_docmd.c:8357
    #5 0x55ef6071a3d9 in ex_redraw /src/tools/vim/src/ex_docmd.c:8341
    #6 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #7 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #8 0x55ef60f775ff in call_user_func /src/tools/vim/src/userfunc.c:2945
    #9 0x55ef60f79590 in call_user_func_check /src/tools/vim/src/userfunc.c:3107
    #10 0x55ef60f7e3a5 in call_func /src/tools/vim/src/userfunc.c:3663
    #11 0x55ef60f6acb7 in get_func_tv /src/tools/vim/src/userfunc.c:1841
    #12 0x55ef60f926fa in ex_call_inner /src/tools/vim/src/userfunc.c:5647
    #13 0x55ef60f958e9 in ex_call /src/tools/vim/src/userfunc.c:5971
    #14 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #15 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #16 0x55ef60615a5f in ex_execute /src/tools/vim/src/eval.c:6947
    #17 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #18 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #19 0x55ef60f775ff in call_user_func /src/tools/vim/src/userfunc.c:2945
    #20 0x55ef60f79590 in call_user_func_check /src/tools/vim/src/userfunc.c:3107
    #21 0x55ef60f7e3a5 in call_func /src/tools/vim/src/userfunc.c:3663
    #22 0x55ef60f6acb7 in get_func_tv /src/tools/vim/src/userfunc.c:1841
    #23 0x55ef60f926fa in ex_call_inner /src/tools/vim/src/userfunc.c:5647
    #24 0x55ef60f958e9 in ex_call /src/tools/vim/src/userfunc.c:5971
    #25 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #26 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #27 0x55ef60ca52dc in do_source_ext /src/tools/vim/src/scriptfile.c:1667
    #28 0x55ef60ca7255 in do_source /src/tools/vim/src/scriptfile.c:1811
    #29 0x55ef60ca188c in cmd_source /src/tools/vim/src/scriptfile.c:1163
    #30 0x55ef60ca1a5d in ex_source /src/tools/vim/src/scriptfile.c:1189
    #31 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #32 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #33 0x55ef606cb5df in do_cmdline_cmd /src/tools/vim/src/ex_docmd.c:584
    #34 0x55ef612971b3 in exe_commands /src/tools/vim/src/main.c:3135
    #35 0x55ef6128818c in vim_main2 /src/tools/vim/src/main.c:781
    #36 0x55ef612874c8 in main /src/tools/vim/src/main.c:432
    #37 0x7fb19ea29d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #38 0x7fb19ea29e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #39 0x55ef60401ed4 in _start (/src/tools/vim/src/vim+0x1322ed4)

0x60b000001e34 is located 0 bytes to the right of 100-byte region [0x60b000001dd0,0x60b000001e34)
allocated by thread T0 here:
    #0 0x7fb1a06b4867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x55ef604023af in lalloc /src/tools/vim/src/alloc.c:246
    #2 0x55ef6040214e in alloc /src/tools/vim/src/alloc.c:151
    #3 0x55ef605736f7 in win_line /src/tools/vim/src/drawline.c:2802
    #4 0x55ef605a40e4 in win_update /src/tools/vim/src/drawscreen.c:2499
    #5 0x55ef60584096 in update_screen /src/tools/vim/src/drawscreen.c:326
    #6 0x55ef6071a4f3 in redraw_cmd /src/tools/vim/src/ex_docmd.c:8357
    #7 0x55ef6071a3d9 in ex_redraw /src/tools/vim/src/ex_docmd.c:8341
    #8 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #9 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #10 0x55ef60f775ff in call_user_func /src/tools/vim/src/userfunc.c:2945
    #11 0x55ef60f79590 in call_user_func_check /src/tools/vim/src/userfunc.c:3107
    #12 0x55ef60f7e3a5 in call_func /src/tools/vim/src/userfunc.c:3663
    #13 0x55ef60f6acb7 in get_func_tv /src/tools/vim/src/userfunc.c:1841
    #14 0x55ef60f926fa in ex_call_inner /src/tools/vim/src/userfunc.c:5647
    #15 0x55ef60f958e9 in ex_call /src/tools/vim/src/userfunc.c:5971
    #16 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #17 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #18 0x55ef60615a5f in ex_execute /src/tools/vim/src/eval.c:6947
    #19 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #20 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #21 0x55ef60f775ff in call_user_func /src/tools/vim/src/userfunc.c:2945
    #22 0x55ef60f79590 in call_user_func_check /src/tools/vim/src/userfunc.c:3107
    #23 0x55ef60f7e3a5 in call_func /src/tools/vim/src/userfunc.c:3663
    #24 0x55ef60f6acb7 in get_func_tv /src/tools/vim/src/userfunc.c:1841
    #25 0x55ef60f926fa in ex_call_inner /src/tools/vim/src/userfunc.c:5647
    #26 0x55ef60f958e9 in ex_call /src/tools/vim/src/userfunc.c:5971
    #27 0x55ef606da97c in do_one_cmd /src/tools/vim/src/ex_docmd.c:2561
    #28 0x55ef606cdb1a in do_cmdline /src/tools/vim/src/ex_docmd.c:990
    #29 0x55ef60ca52dc in do_source_ext /src/tools/vim/src/scriptfile.c:1667

SUMMARY: AddressSanitizer: heap-buffer-overflow /src/tools/vim/src/mbyte.c:2262 in utf_char2bytes
Shadow bytes around the buggy address:
  0x0c167fff8370: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x0c167fff8380: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fd fd
  0x0c167fff8390: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
  0x0c167fff83a0: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c167fff83b0: fd fa fa fa fa fa fa fa fa fa 00 00 00 00 00 00
=>0x0c167fff83c0: 00 00 00 00 00 00[04]fa fa fa fa fa fa fa fa fa
  0x0c167fff83d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c167fff83e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c167fff83f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c167fff8400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c167fff8410: fa fa fa fa fa fa fa 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
  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
  Shadow gap:              cc
==1565972==ABORTING




On CI there is also a run with ASAN, thus normally things are caught
there.




--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/6326d284-685b-852b-be3d-ffc3e31a7c78%40raelity.com.

Raspunde prin e-mail lui