]> sigrok.org Git - libsigrok.git/commitdiff
input/wav: Fix potential buffer overflow (and compiler warning).
authorUwe Hermann <redacted>
Sun, 22 Jul 2018 14:59:38 +0000 (16:59 +0200)
committerUwe Hermann <redacted>
Sun, 22 Jul 2018 14:59:38 +0000 (16:59 +0200)
With gcc 8 this yielded:

  src/input/wav.c: In function ‘receive’:
  src/input/wav.c:345:51: warning: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 6 [-Wformat-truncation=]
       snprintf(channelname, sizeof(channelname), "CH%d", i + 1);
                                                     ^~
  src/input/wav.c:345:48: note: directive argument in the range [1, 2147483647]
       snprintf(channelname, sizeof(channelname), "CH%d", i + 1);
                                                  ^~~~~~
  src/input/wav.c:345:5: note: ‘snprintf’ output between 4 and 13 bytes into a destination of size 8
       snprintf(channelname, sizeof(channelname), "CH%d", i + 1);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/input/wav.c

index 66dfce98e84a47f26fcf11827d9072c2e12fad51..b6d55888bf54d3499f4d694ae061f80235ab94a6 100644 (file)
@@ -320,7 +320,7 @@ static int receive(struct sr_input *in, GString *buf)
 {
        struct context *inc;
        int ret;
-       char channelname[8];
+       char channelname[16];
 
        g_string_append_len(in->buf, buf->str, buf->len);