]> sigrok.org Git - libsigrok.git/commitdiff
input/trace32_ad: fix potential buffer overflow for unexpected input data
authorGerhard Sittig <redacted>
Mon, 21 May 2018 17:55:58 +0000 (19:55 +0200)
committerGerhard Sittig <redacted>
Mon, 21 May 2018 18:13:27 +0000 (20:13 +0200)
Commit 8c4bff1d25e1 introduced a routine which prints what mostly should
be text, and avoids non-printable characters. This implementation used an
incorrect format string, which could result in data getting written past
the end of a buffer. Fix the format string.

src/input/trace32_ad.c

index f91ed8b1561db36c94f94ecc5818555c7339eaeb..b1d801e8a85b9d7f93c4361d602f5addace8cb42 100644 (file)
@@ -120,7 +120,7 @@ static char *printable_name(const char *name)
                if (g_ascii_isprint(name[i])) {
                        *p++ = name[i];
                } else {
-                       snprintf(p, 5, "\\x%05x", name[i]);
+                       snprintf(p, 5, "\\x%02x", name[i]);
                        p += strlen("\\x00");
                }
        }