<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 21, 2016 at 10:20 PM, Philipp Gesang <span dir="ltr"><<a href="mailto:phg@phi-gamma.net" target="_blank">phg@phi-gamma.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">When passed the empty string, tprint() will allocate a zero-length<br>
buffer and then branch on its first element (``if (*buffer) { … }``)<br>
which has never been initialized.<br>
<br>
Prevent the invalid access by checking for the empty string and skipping<br>
the printing routine entirely if appropriate.<br>
<br>
Signed-off-by: Philipp Gesang <<a href="mailto:phg@phi-gamma.net">phg@phi-gamma.net</a>><br>
---<br>
 source/texk/web2c/luatexdir/tex/printing.w | 6 +++++-<br>
 1 file changed, 5 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/source/texk/web2c/luatexdir/tex/printing.w b/source/texk/web2c/luatexdir/tex/printing.w<br>
index 478d55f..675fa45 100644<br>
--- a/source/texk/web2c/luatexdir/tex/printing.w<br>
+++ b/source/texk/web2c/luatexdir/tex/printing.w<br>
@@ -367,6 +367,10 @@ void tprint(const char *sss)<br>
     int newlinechar = int_par(new_line_char_code);<br>
     int dolog = 0;<br>
     int doterm = 0;<br>
+    const size_t sss_len = strlen(sss);<br>
+    if (sss_len == 0u) { /* nothing to print */<br>
+        return;<br>
+    }<br>
     switch (selector) {<br>
         case no_print:<br>
             return;<br>
@@ -413,7 +417,7 @@ void tprint(const char *sss)<br>
     }<br>
     /* what is left is the 3 term/log settings */<br>
     if (dolog || doterm) {<br>
-        buffer = xmalloc(strlen(sss)*3);<br>
+        buffer = xmalloc(sss_len*3);<br>
         if (dolog) {<br>
             const unsigned char *ss = (const unsigned char *) sss;<br>
             while (*ss) {<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.8.0<br>
<br>
</font></span></blockquote></div><br>do you have an example that trigger the wrong sss string ?<br clear="all"><div><br></div>-- <br><div class="gmail_signature">luigi<br></div>
</div></div>