From: Stephen Hemminger Date: Thu, 29 May 2014 17:49:55 +0000 (-0700) Subject: Fix non-literal string format warnings X-Git-Tag: v3.15.0~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=468dec75a5455563610bc8ec31991caa71484096;p=thirdparty%2Fiproute2.git Fix non-literal string format warnings The lnstat program was building a format string, then using it. This was safe, but simpler to just use format character * to get width. --- diff --git a/misc/lnstat.c b/misc/lnstat.c index d6415efbb..30ac8f53a 100644 --- a/misc/lnstat.c +++ b/misc/lnstat.c @@ -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; }