]> granicus.if.org Git - sysstat/commitdiff
svg_stats.c: Fix gcc format-truncation warning
authorSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 20 Jul 2018 06:55:59 +0000 (08:55 +0200)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 20 Jul 2018 06:55:59 +0000 (08:55 +0200)
Resize data buffer to avoid warning from gcc:

svg_stats.c: In function ‘recappend’:
svg_stats.c:549:25: warning: ‘ L’ directive output may be truncated writing 2 bytes into a region of size between 1 and 128 [-Wformat-truncation=]
  snprintf(data, 128, "%s L%llu,%.2f%s", restart ? data1 : "", timetag, p_value,
                         ^~
svg_stats.c:549:2: note: ‘snprintf’ output between 9 and 591 bytes into a destination of size 128
  snprintf(data, 128, "%s L%llu,%.2f%s", restart ? data1 : "", timetag, p_value,
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    p_value != value ? data2 : "");
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
svg_stats.c

index 27314e31718c477b989e8ea0c0d04e7084102cff..9a61289c0e2d120231226c5009865a1de81032ef 100644 (file)
@@ -475,7 +475,7 @@ void recappend(unsigned long long timetag, double p_value, double value, char **
               int *outsize, int restart, unsigned long long dt,
               double *spmin, double *spmax)
 {
-       char data[128], data1[128], data2[128];
+       char data[512], data1[128], data2[128];
 
        /* Save min and max values */
        if (value < *spmin) {
@@ -486,16 +486,16 @@ void recappend(unsigned long long timetag, double p_value, double value, char **
        }
        /* Prepare additional graph definition data */
        if (restart) {
-               snprintf(data1, 128, " M%llu,%.2f", timetag - dt, p_value);
-               data1[127] = '\0';
+               snprintf(data1, sizeof(data1), " M%llu,%.2f", timetag - dt, p_value);
+               data1[sizeof(data1) - 1] = '\0';
        }
        if (p_value != value) {
-               snprintf(data2, 128, " L%llu,%.2f", timetag, value);
-               data2[127] = '\0';
+               snprintf(data2, sizeof(data2), " L%llu,%.2f", timetag, value);
+               data2[sizeof(data2) - 1] = '\0';
        }
-       snprintf(data, 128, "%s L%llu,%.2f%s", restart ? data1 : "", timetag, p_value,
+       snprintf(data, sizeof(data), "%s L%llu,%.2f%s", restart ? data1 : "", timetag, p_value,
                 p_value != value ? data2 : "");
-       data[127] = '\0';
+       data[sizeof(data) - 1] = '\0';
 
        save_svg_data(data, out, outsize);
 }