security fix: replaced sprintf with snprintf
[xboard.git] / pixmaps / convert.c
index 2a82f91..f2c3afa 100644 (file)
@@ -9,8 +9,8 @@
 \r
 \r
 int sizeList[] = { 21, 25, 29, 33, 37, 40, 45, 49, 54, 58, 64, 72, 80, 87, 95, 108, 116, 129 };\r
-char *(pieceList[]) = {"p", "n", "b", "r", "q", "f", "e", "as", "c", "w", "m", \r
-                      "o", "h", "a", "dk", "g", "d", "v", "l", "s", "u", "k", \r
+char *(pieceList[]) = {"p", "n", "b", "r", "q", "f", "e", "as", "c", "w", "m",\r
+                      "o", "h", "a", "dk", "g", "d", "v", "l", "s", "u", "k",\r
                       "wp", "wl", "wn", "ws", "cv", NULL };\r
 char kindList[] = "sow";\r
 \r
@@ -64,7 +64,7 @@ FloodFill(char a[130][130], int size, int x, int y)
                if(x < size-1) FloodFill(a, size, x+1, y);\r
                if(y < size-1) FloodFill(a, size, x, y+1);\r
        }\r
-       \r
+\r
 }\r
 \r
 void Save(FILE *f, char *name, char data[130][130], int size, char *col, int depth)\r
@@ -92,7 +92,10 @@ char data[130][130], oData[130][130], sData[130][130], wData[130][130];
 \r
 main(int argc, char **argv)\r
 {\r
-       int i, j, k, d, cnt, p, s, t; char c, h, w, name[80], buf[80], transparent;\r
+\r
+#define BUFLEN 80\r
+\r
+       int i, j, k, d, cnt, p, s, t; char c, h, w, name[BUFLEN], buf[BUFLEN], transparent;\r
        FILE *f;\r
 \r
     transparent = argc > 1 && !strcmp(argv[1], "-t");\r
@@ -101,20 +104,20 @@ main(int argc, char **argv)
 \r
        // Load the 3 kinds of Windows monochrome bitmaps (outline, solid, white fill)\r
 \r
-       sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'o');\r
+       snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'o');\r
        printf("try %s\n", buf);\r
        f = fopen(buf, "rb");\r
        if(f == NULL) continue;\r
        Load(f, oData, buf);\r
 \r
-       sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 's');\r
+       snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 's');\r
        f = fopen(buf, "rb");\r
        if(f == NULL) continue;\r
        Load(f, sData, buf);\r
 \r
-       sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'w');\r
+       snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'w');\r
        if(pieceList[p][0]=='w')\r
-       sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", "w", sizeList[s], 'w');\r
+       snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", "w", sizeList[s], 'w');\r
        f = fopen(buf, "rb");\r
        if(f == NULL) continue;\r
        Load(f, wData, buf);\r
@@ -133,13 +136,13 @@ main(int argc, char **argv)
            FloodFill(data, d, d-1, d-1);\r
        }\r
 \r
-       sprintf(buf, "%s%s%d.xpm", pieceList[p], "dd", d);\r
-       sprintf(name, "%s%s%d", pieceList[p], "dd", d);\r
+       snprintf(buf, BUFLEN, "%s%s%d.xpm", pieceList[p], "dd", d);\r
+       snprintf(name, BUFLEN, "%s%s%d", pieceList[p], "dd", d);\r
        f = fopen(buf, "w");\r
        Save(f, name, data, d, "c green s dark_square", 3);\r
 \r
-       sprintf(buf, "%s%s%d.xpm", pieceList[p], "dl", d);\r
-       sprintf(name, "%s%s%d", pieceList[p], "dl", d);\r
+       snprintf(buf, BUFLEN, "%s%s%d.xpm", pieceList[p], "dl", d);\r
+       snprintf(name, BUFLEN, "%s%s%d", pieceList[p], "dl", d);\r
        f = fopen(buf, "w");\r
        Save(f, name, data, d, "c gray s light_square", 3); // silly duplication; pixmap is te same, but other color\r
 \r
@@ -149,13 +152,13 @@ main(int argc, char **argv)
        Paint(data, wData, d, 'X'); // overay with white-filler piece bitmap\r
        Paint(data, oData, d, ' '); // overay with outline piece bitmaps\r
 \r
-       sprintf(buf, "%s%s%d.xpm", pieceList[p], "ld", d);\r
-       sprintf(name, "%s%s%d", pieceList[p], "ld", d);\r
+       snprintf(buf, BUFLEN, "%s%s%d.xpm", pieceList[p], "ld", d);\r
+       snprintf(name, BUFLEN, "%s%s%d", pieceList[p], "ld", d);\r
        f = fopen(buf, "w");\r
        Save(f, name, data, d, "c green s dark_square", 3);\r
 \r
-       sprintf(buf, "%s%s%d.xpm", pieceList[p], "ll", d);\r
-       sprintf(name, "%s%s%d", pieceList[p], "ll", d);\r
+       snprintf(buf, BUFLEN, "%s%s%d.xpm", pieceList[p], "ll", d);\r
+       snprintf(name, BUFLEN, "%s%s%d", pieceList[p], "ll", d);\r
        f = fopen(buf, "w");\r
        Save(f, name, data, d, "c gray s light_square", 3);\r
 \r