On 31/1/21 7:54 am, Samuel Thibault wrote: > I uploaded to unreleased a version with that fixed, but apparently the > build fails a bit later: > > [...] > ../vim -f -u unix.vim -U NONE --noplugin --not-a-term -S runtest.vim > test_help.vim --cmd 'au SwapExists * let v:swapchoice = "e"' > /dev/null > double free or corruption (!prev) > > https://buildd.debian.org/status/fetch.php?pkg=vim&arch=hurd-i386&ver=2%3A8.2.2367-1%2Bb1&stamp=1612040005&raw=0
It appears to be an issue with unix_expandpath in filepath.c in vim: it tries to free "buf" in one of the recursive calls, but the memory address is not accessible (?) (gdb) thread apply all bt Thread 5 (Thread 4179.5): #0 0x031d651c in mach_msg_trap () at ./build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2 #1 0x031d6cc6 in __GI___mach_msg (msg=0x5008f10, option=2, send_size=0, rcv_size=4096, rcv_name=141, timeout=0, notify=0) at msg.c:111 #2 0x031d7259 in __mach_msg_server_timeout (demux=0x31ec210 <msgport_server>, max_size=4096, rcv_name=141, option=0, timeout=0) at msgserver.c:100 #3 0x031d73b4 in __mach_msg_server (demux=0x31ec210 <msgport_server>, max_size=4096, rcv_name=141) at msgserver.c:195 #4 0x031ec2fe in _hurd_msgport_receive () at msgportdemux.c:67 #5 0x026863ff in entry_point (self=<optimized out>, start_routine=<optimized out>, arg=<optimized out>) at pt-create.c:62 #6 0x00000000 in () Thread 4 (Thread 4179.4): #0 0x031d651c in mach_msg_trap () at ./build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2 #1 0x031d6cc6 in __GI___mach_msg (msg=0x480399c, option=3, send_size=48, rcv_size=32, rcv_name=148, timeout=0, notify=0) at msg.c:111 #2 0x03ab414c in __msg_sig_post (process=141, signal=0, sigcode=0, refport=1) at ./build-tree/hurd-i386-libc/hurd/RPC_msg_sig_post.c:149 #3 0x031f8a84 in __GI__hurd_raise_signal (ss=<optimized out>, signo=6, detail=0x4803a38) at hurd-raise.c:49 #4 0x0268ac8c in __pthread_kill (thread=1, sig=6) at ../sysdeps/hurd/htl/pt-kill.c:49 #5 0x03223797 in __GI_raise (signo=6) at ../sysdeps/htl/raise.c:38 #6 0x031d4e74 in __GI_abort () at abort.c:79 #7 0x03268b5f in __libc_message (action=<optimized out>, fmt=<optimized out>) at ../sysdeps/posix/libc_fatal.c:155 #8 0x0327046d in malloc_printerr (str=str@entry=0x6540a98 <error: Cannot access memory at address 0x6540a98>) at malloc.c:5345 #9 0x032718ad in _int_free (av=0x33f9fe0 <main_arena>, p=0x10089da8, have_lock=0) at malloc.c:4315 #10 0x08182f89 in vim_free (x=0x10089db0) at misc2.c:1807 #11 0x081278fb in unix_expandpath (gap=0x4804208, path=0x10031790 "Xdir/", 'd' <repeats 195 times>..., wildoff=773, flags=34, didstar=1) at filepath.c:3665 #12 0x08127a4a in unix_expandpath (gap=0x4804208, path=0x10029720 "Xdir/", 'd' <repeats 195 times>..., wildoff=517, flags=34, didstar=1) at filepath.c:3622 #13 0x08127a4a in unix_expandpath (gap=0x4804208, path=0x100695d0 "Xdir/", 'd' <repeats 195 times>..., wildoff=261, flags=34, didstar=1) at filepath.c:3622 #14 0x08127a4a in unix_expandpath (gap=0x4804208, path=0x10027460 "Xdir/**/*.txt", wildoff=0, flags=34, didstar=0) at filepath.c:3622 #15 0x081bb6f4 in mch_expandpath (gap=0x4804208, path=0x10027460 "Xdir/**/*.txt", flags=34) at os_unix.c:6465 #16 0x08128122 in gen_expand_wildcards (num_pat=<optimized out>, pat=0x8453aa0 <NameBuff>, num_file=num_file@entry=0x480430c, file=0x4804310, flags=34) at filepath.c:3864 #17 0x081282cb in gen_expand_wildcards (num_pat=<optimized out>, pat=<optimized out>, num_file=0x480430c, file=0x4804310, flags=34) at filepath.c:3765 #18 0x081411a2 in helptags_one (ignore_writeerr=0, add_help_tags=0, tagfname=0x4804344 "tags", ext=0x480433f ".txt", dir=0x10064a70 "Xdir") at help.c:981 #19 do_helptags (dirname=dirname@entry=0x10064a70 "Xdir", add_help_tags=0, ignore_writeerr=ignore_writeerr@entry=0) at help.c:1272 #20 0x08143654 in ex_helptags (eap=0x480460c) at help.c:1322 #21 0x0810ba44 in do_one_cmd (cookie=0x0, fgetline=0x0, cstack=0x4804708, flags=11, cmdlinep=0x48045a4) at e x_docmd.c:2588 #22 do_cmdline (cmdline=0x1006bc60 "helptags Xdir", fgetline=0x0, cookie=0x0, flags=11) at ex_docmd.c:1003 #23 0x0810c812 in do_cmdline_cmd (cmd=0x1006bc60 "helptags Xdir") at ex_docmd.c:592 #24 0x08260e87 in f_assert_fails (argvars=0x4804f0c, rettv=0x48050e8) at testing.c:564 #25 0x080e74ed in call_internal_func (name=0x10069a80 "assert_fails", argcount=2, argvars=0x4804f0c, rettv=0x48050e8) at evalfunc.c:2042 #26 0x0827e863 in call_func (funcname=0x10069c40 "assert_fails", len=-1, rettv=0x48050e8, argcount_in=<optimized out>, argvars_in=0x4804f0c, funcexe=0x48050f8) at userfunc.c:2523 #27 0x0827ec07 in get_func_tv (name=0x10069c40 "assert_fails", len=-1, rettv=0x48050e8, arg=0x48050c8, evalarg=0x480511c, funcexe=0x48050f8) at userfunc.c:906 #28 0x082827e2 in ex_call (eap=0x48053ac) at userfunc.c:4480 #29 0x0810ba44 in do_one_cmd (cookie=0x1002a1c0, fgetline=0x827ac60 <get_func_line>, cstack=0x48054a8, flags=7, cmdlinep=0x4805344) at ex_docmd.c:2588 #30 do_cmdline (cmdline=0x0, fgetline=0x827ac60 <get_func_line>, cookie=0x1002a1c0, flags=7) at ex_docmd.c:1003 #31 0x0827bccc in call_user_func (fp=fp@entry=0x100658c0, argcount=argcount@entry=0, argvars=argvars@entry=0x4805f2c, rettv=<optimized out>, funcexe=<optimized out>, selfdict=<optimized out>) at userfunc.c:1885 #32 0x0827d94a in call_user_func_check (selfdict=0x0, funcexe=0x4806118, rettv=0x4806108, argvars=0x4805f2c, argcount=0, fp=0x100658c0) at userfunc.c:2039 #33 call_user_func_check (fp=0x100658c0, argcount=0, argvars=0x4805f2c, rettv=0x4806108, funcexe=0x4806118, selfdict=0x0) at userfunc.c:2005 #34 0x0827e636 in call_func (funcname=0x10069a60 "Test_helptag_cmd", len=-1, rettv=0x4806108, argcount_in=<optimized out>, argvars_in=0x4805f2c, funcexe=0x4806118) at userfunc.c:2505 #35 0x0827ec07 in get_func_tv (name=0x10069a60 "Test_helptag_cmd", len=-1, rettv=0x4806108, arg=0x48060e8, evalarg=0x480613c, funcexe=0x4806118) at userfunc.c:906 #36 0x082827e2 in ex_call (eap=0x48063cc) at userfunc.c:4480 #37 0x0810ba44 in do_one_cmd (cookie=0x10068860, fgetline=0x827ac60 <get_func_line>, cstack=0x48064c8, flags=3, cmdlinep=0x4806364) at ex_docmd.c:2588 #38 do_cmdline (cmdline=0x10068e60 "call Test_helptag_cmd()", fgetline=0x827ac60 <get_func_line>, cookie=0x10068860, flags=3) at ex_docmd.c:1003 #39 0x080daa30 in ex_execute (eap=0x4806c6c) at eval.c:6108 #40 0x0810ba44 in do_one_cmd (cookie=0x10068860, fgetline=0x827ac60 <get_func_line>, cstack=0x4806d68, flags=7, cmdlinep=0x4806c04) at ex_docmd.c:2588 #41 do_cmdline (cmdline=0x0, fgetline=0x827ac60 <get_func_line>, cookie=0x10068860, flags=7) at ex_docmd.c:1003 #42 0x0827bccc in call_user_func (fp=fp@entry=0x1002e210, argcount=argcount@entry=1, argvars=argvars@entry=0x48077ec, rettv=<optimized out>, funcexe=<optimized out>, selfdict=<optimized out>) at userfunc.c:1885 #43 0x0827d94a in call_user_func_check (selfdict=0x0, funcexe=0x48079d8, rettv=0x48079c8, argvars=0x48077ec, argcount=1, fp=0x1002e210) at userfunc.c:2039 #44 call_user_func_check (fp=0x1002e210, argcount=1, argvars=0x48077ec, rettv=0x48079c8, funcexe=0x48079d8, selfdict=0x0) at userfunc.c:2005 #45 0x0827e636 in call_func (funcname=0x100649a0 "RunTheTest", len=-1, rettv=0x48079c8, argcount_in=<optimized out>, argvars_in=0x48077ec, funcexe=0x48079d8) at userfunc.c:2505 #46 0x0827ec07 in get_func_tv (name=0x100649a0 "RunTheTest", len=-1, rettv=0x48079c8, arg=0x48079a8, evalarg=0x48079fc, funcexe=0x48079d8) at userfunc.c:906 #47 0x082827e2 in ex_call (eap=0x4807c8c) at userfunc.c:4480 #48 0x0810ba44 in do_one_cmd (cookie=0x4807c4c, fgetline=0x8101090 <get_loop_line>, cstack=0x4807d88, flags=7, cmdlinep=0x4807c24) at ex_docmd.c:2588 #49 do_cmdline (cmdline=0x1002df00 "\" This script is sourced while editing the .vim file with the tests.", fgetline=0x82074e0 <getsourceline>, cookie=0x48082cc, flags=7) at ex_docmd.c:1003 #50 0x082092c9 in do_source (fname=0x10030b13 "runtest.vim", check_other=0, is_vimrc=0, ret_sid=0x0) at scri ptfile.c:1401 #51 0x0820a2ec in cmd_source (eap=<optimized out>, fname=0x10030b13 "runtest.vim") at scriptfile.c:971 #52 cmd_source (fname=0x10030b13 "runtest.vim", eap=<optimized out>) at scriptfile.c:951 #53 0x0810ba44 in do_one_cmd (cookie=0x0, fgetline=0x0, cstack=0x4808678, flags=11, cmdlinep=0x4808514) at ex_docmd.c:2588 #54 do_cmdline (cmdline=0x10030a60 "so runtest.vim", fgetline=0x0, cookie=0x0, flags=11) at ex_docmd.c:1003 #55 0x0810c812 in do_cmdline_cmd (cmd=0x10030a60 "so runtest.vim") at ex_docmd.c:592 #56 0x08312f5f in exe_commands (parmp=0x8454e80 <params>) at main.c:3060 #57 vim_main2 () at main.c:760 #58 0x080839d6 in main (argc=<optimized out>, argv=<optimized out>) at main.c:3254