Hi. These were easy for me to reproduce in various versions. Export to mapfile the variable to be assigned, then run any callback: $ printf '%s\n' {a..z} | bash -xc 'a= mapfile -tc1 -C : a' + a= + mapfile -tc1 -C : a ++ : 0 a Segmentation fault
Set any variable, then unset mapfile's variable. (takes a few iterations): $ printf '%s\n' {a..z} | bash -xc 'b=; mapfile -tc1 -C "unset -v a; :" a' + b= + mapfile -tc1 -C 'unset -v a; :' a ++ unset -v a ++ : 0 a ++ unset -v a ++ : 1 b ++ unset -v a ++ : 2 c Segmentation fault Or modify its type to anything but an indexed array for a faster failure: $ printf '%s\n' {a..z} | bash -xc 'b=; mapfile -tc1 -C "unset -v a; a=; :" a' + b= + mapfile -tc1 -C 'unset -v a; a=; :' a ++ unset -v a ++ a= ++ : 0 a Segmentation fault Or indirectly via nameref: $ printf '%s\n' {a..z} | bash -xc 'typeset -n x=a; mapfile -tc1 -C "unset -v x; :" a' + typeset -n x=a + mapfile -tc1 -C 'unset -v x; :' a ++ unset -v x ++ : 0 a Segmentation fault There were others, mostly to do with modifying the variable being mapped. -- Dan Douglas
signature.asc
Description: This is a digitally signed message part.