wmgeneral: Use field width limits for scanf.

This fixes "(portability) scanf without field width limits can crash with
huge input data on some versions of libc" warning from cppcheck.

We choose 10 as the field width limit as it is the number of characters in
2^31-1, the largest int.
This commit is contained in:
Doug Torrance 2015-05-19 22:30:51 -05:00 committed by Carlos R. Mafra
parent a0f16b945a
commit 6b1ed40882
12 changed files with 24 additions and 24 deletions

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }

View file

@ -306,7 +306,7 @@ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
int zero=0; int zero=0;
int curpixel; int curpixel;
sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); sscanf(*xpm, "%10d %10d %10d %10d", &width, &height, &numcol, &depth);
for (k=0; k!=depth; k++) for (k=0; k!=depth; k++)
@ -483,7 +483,7 @@ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bit
XMapWindow(display, win); XMapWindow(display, win);
if (geometry) { if (geometry) {
if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { if (sscanf(geometry, "+%10d+%10d", &wx, &wy) != 2) {
fprintf(stderr, "Bad geometry string.\n"); fprintf(stderr, "Bad geometry string.\n");
exit(1); exit(1);
} }