]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
scout: band-aid -Wformat-truncation
authorBenjamin Kaduk <kaduk@mit.edu>
Sat, 2 Feb 2019 23:02:08 +0000 (17:02 -0600)
committerStephan Wiesand <stephan.wiesand@desy.de>
Sat, 25 Jan 2020 20:40:26 +0000 (15:40 -0500)
gcc8 gets pretty confused about the bounds on these things (presumably
due to our alignment options) and thinks this could potentially be a huge
string.  Check for truncation to appease the compiler, instead of trying
to ensure that the buffer is big enough.

Reviewed-on: https://gerrit.openafs.org/13470
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit df8534909fdc1fa8417aa788c0fa71c5dbe7eb30)

Change-Id: Idf3a2f32ba4630a7d11b2c0664c6dd9b694eb7db
Reviewed-on: https://gerrit.openafs.org/13739
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/scout/scout.c

index 9396c50b79ac36f85fd305efde289e4f28199a5b..3770e0db2f69337911466d16b7d3163f8f0ca513 100644 (file)
@@ -1801,14 +1801,18 @@ execute_scout(int a_numservers, struct cmd_item *a_srvname, int a_pkg)
            snprintf(attn_label, sizeof(attn_label), "%s: < %d blocks free",
                     scout_label[5], scout_attn_disk_minfree);
        }
-       snprintf(scout_Banner, sizeof(scout_Banner),
-                "%*s %*s %*s %*s %*s %s",
-                scout_col_width[0], scout_label[0],
-                scout_col_width[1], scout_label[1],
-                scout_col_width[2], scout_label[2],
-                scout_col_width[3], scout_label[3],
-                scout_col_width[4], scout_label[4],
-                attn_label);
+       code = snprintf(scout_Banner, sizeof(scout_Banner),
+                       "%*s %*s %*s %*s %*s %s",
+                       scout_col_width[0], scout_label[0],
+                       scout_col_width[1], scout_label[1],
+                       scout_col_width[2], scout_label[2],
+                       scout_col_width[3], scout_label[3],
+                       scout_col_width[4], scout_label[4],
+                       attn_label);
+       if (code < 0 || code >= sizeof(scout_Banner)) {
+           fprintf(stderr, "[%s] Truncation while generating banner\n", rn);
+           return -1;
+       }
 
        lightdata = (struct gator_lightobj *)(scout_banner1_lp->o_data);
        mini_justify(scout_Banner, lightdata->label, scout_frameDims.maxx,