]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Fix non-literal string format warnings
authorStephen Hemminger <stephen@networkplumber.org>
Thu, 29 May 2014 17:49:55 +0000 (10:49 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Thu, 29 May 2014 17:49:55 +0000 (10:49 -0700)
The lnstat program was building a format string, then using it.
This was safe, but simpler to just use format character * to
get width.

misc/lnstat.c

index d6415efbb50cab3219cfe1f2a0438b60f79b24ce..30ac8f53ad866831ead1054191f03c3361d08e37 100644 (file)
@@ -98,11 +98,8 @@ static void print_line(FILE *of, const struct lnstat_file *lnstat_files,
 
        for (i = 0; i < fp->num; i++) {
                const struct lnstat_field *lf = fp->params[i].lf;
-               char formatbuf[255];
 
-               snprintf(formatbuf, sizeof(formatbuf)-1, "%%%ulu|",
-                        fp->params[i].print.width);
-               fprintf(of, formatbuf, lf->result);
+               fprintf(of, "%*lu|", fp->params[i].print.width, lf->result);
        }
        fputc('\n', of);
 }
@@ -198,21 +195,20 @@ static struct table_hdr *build_hdr_string(struct lnstat_file *lnstat_files,
 
        for (i = 0; i < fps->num; i++) {
                char *cname, *fname = fps->params[i].lf->name;
-               char fmt[12];
                unsigned int width = fps->params[i].print.width;
 
-               snprintf(fmt, sizeof(fmt)-1, "%%%u.%us|", width, width);
-
-               snprintf(th.hdr[0]+ofs, width+2, fmt,
+               snprintf(th.hdr[0]+ofs, width+2, "%*.*s|", width, width,
                         fps->params[i].lf->file->basename);
 
                cname = fname;
                for (h = 1; h < HDR_LINES; h++) {
                        if (cname - fname >= strlen(fname))
-                               snprintf(th.hdr[h]+ofs, width+2, fmt, "");
+                               snprintf(th.hdr[h]+ofs, width+2,
+                                        "%*.*s|", width, width, "");
                        else {
                                th.num_lines = h+1;
-                               snprintf(th.hdr[h]+ofs, width+2, fmt, cname);
+                               snprintf(th.hdr[h]+ofs, width+2,
+                                        "%*.*s|", width, width, cname);
                        }
                        cname += width;
                }