Crash in expandarg
Johannes Altmanninger <[email protected]> Sat, 14 Sep 2024 00:05:48 +0200
| Newsgroups | org.kernel.vger.dash |
|---|---|
| Message-ID | <[email protected]> |
I'm hitting an easily reproducible crash.
It bisects to c5bf970 (expand: Add multi-byte support to pmatch, 2024-06-02).
After bisecting I reduced it to this example (probably not minimal)
echo \\ | dash -c 'foo=$(cat; printf .); foo=${foo%.}'
stacktrace from gdb:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000061d927e57bbd in expandarg (arg=arg@entry=0x61d927e6dce00000, arglist=arglist@entry=0x7fff2ea3bbe0, flag=flag@entry=4) at expand.c:228
228 argbackq = arg->narg.backquote;
(gdb) bt
#0 0x000061d927e57bbd in expandarg (arg=arg@entry=0x61d927e6dce00000, arglist=arglist@entry=0x7fff2ea3bbe0, flag=flag@entry=4) at expand.c:228
#1 0x000061d927e53168 in evalcommand (cmd=0x61d927e6dd10 <stackbase+400>, flags=1) at eval.c:865
#2 0x000061d927e522e7 in evaltree (n=0x61d927e6dd10 <stackbase+400>, flags=1) at eval.c:305
#3 0x000061d927e522e7 in evaltree (n=0x61d927e6dd10 <stackbase+400>, n@entry=0x61d927e6dd30 <stackbase+432>, flags=1) at eval.c:305
#4 0x000061d927e52cf3 in evalstring (s=0x61d927e6db88 <stackbase+8> "foo=$(cat; printf .); foo=${foo%.}", flags=1) at eval.c:190
#5 0x000061d927e506f5 in main (argc=3, argv=0x7fff2ea3bec8) at main.c:176