#5 export_troff (bytes=0xffffd438, cv=0x56564ae0) at codec/export.c:1056
Dear Maintainer,
this crash happens because the array ansi2troff has
just 16 values, but gets accessed at value 32.
This value 32 originates from the constant CACA_TRANSPARENT.
With the below patch the crash could be avoided.
Kind regards,
Bernhard
https://sources.debian.org/src/libcaca/0.99.beta20-3/caca/codec/export.c/#L1056
1056 cur += sprintf(cur, "\\M[%s]", ansi2troff[bg]);
--- libcaca-0.99.beta20.orig/caca/codec/export.c
+++ libcaca-0.99.beta20/caca/codec/export.c
@@ -1052,7 +1052,7 @@ static void *export_troff(caca_canvas_t
if(fg != prevfg || !started)
cur += sprintf(cur, "\\m[%s]", ansi2troff[fg]);
- if(bg != prevbg || !started)
+ if((bg != prevbg || !started) && bg != CACA_TRANSPARENT)
cur += sprintf(cur, "\\M[%s]", ansi2troff[bg]);
if(lineattr[x] & CACA_BOLD)
cur += sprintf(cur, "\\fB");
benutzer@debian:~$ toilet -E troff foo
.nf
\m[black]
m""
mm#mm mmm mmm
# #" "# #" "#
# # # # #
# "#m#" "#m#"
benutzer@debian:~$