exchanged some sprintf with snprintf
authorArun Persaud <arun@nubati.net>
Thu, 25 Jun 2009 06:30:07 +0000 (23:30 -0700)
committerArun Persaud <arun@nubati.net>
Thu, 25 Jun 2009 06:33:35 +0000 (23:33 -0700)
found in a patch for the debian system, extended it a bit to other sprintf's
original patch included only 11 lines by Florian Ernst <florian@debian.org>

backend.c
xboard.c

index 23ec636..3205cde 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -669,7 +669,7 @@ InitBackEnd1()
     if (!ParseTimeControl(appData.timeControl, appData.timeIncrement,\r
                          appData.movesPerSession)) {\r
        char buf[MSG_SIZ];\r
     if (!ParseTimeControl(appData.timeControl, appData.timeIncrement,\r
                          appData.movesPerSession)) {\r
        char buf[MSG_SIZ];\r
-       sprintf(buf, _("bad timeControl option %s"), appData.timeControl);\r
+       snprintf(buf, sizeof(buf), _("bad timeControl option %s"), appData.timeControl);\r
        DisplayFatalError(buf, 0, 2);\r
     }\r
 \r
        DisplayFatalError(buf, 0, 2);\r
     }\r
 \r
@@ -684,7 +684,7 @@ InitBackEnd1()
            searchTime = min * 60 + sec;\r
        } else {\r
            char buf[MSG_SIZ];\r
            searchTime = min * 60 + sec;\r
        } else {\r
            char buf[MSG_SIZ];\r
-           sprintf(buf, _("bad searchTime option %s"), appData.searchTime);\r
+           snprintf(buf, sizeof(buf), _("bad searchTime option %s"), appData.searchTime);\r
            DisplayFatalError(buf, 0, 2);\r
        }\r
     }\r
            DisplayFatalError(buf, 0, 2);\r
        }\r
     }\r
@@ -1124,7 +1124,7 @@ InitBackEnd3 P((void))
                sprintf(buf, _("Could not open comm port %s"),  \r
                        appData.icsCommPort);\r
            } else {\r
                sprintf(buf, _("Could not open comm port %s"),  \r
                        appData.icsCommPort);\r
            } else {\r
-               sprintf(buf, _("Could not connect to host %s, port %s"),  \r
+               snprintf(buf, sizeof(buf), _("Could not connect to host %s, port %s"),  \r
                        appData.icsHost, appData.icsPort);\r
            }\r
            DisplayFatalError(buf, err, 1);\r
                        appData.icsHost, appData.icsPort);\r
            }\r
            DisplayFatalError(buf, err, 1);\r
@@ -1319,18 +1319,18 @@ establish()
     } else if (*appData.gateway != NULLCHAR) {\r
        if (*appData.remoteShell == NULLCHAR) {\r
            /* Use the rcmd protocol to run telnet program on a gateway host */\r
     } else if (*appData.gateway != NULLCHAR) {\r
        if (*appData.remoteShell == NULLCHAR) {\r
            /* Use the rcmd protocol to run telnet program on a gateway host */\r
-           sprintf(buf, "%s %s %s",\r
+           snprintf(buf, sizeof(buf), "%s %s %s",\r
                    appData.telnetProgram, appData.icsHost, appData.icsPort);\r
            return OpenRcmd(appData.gateway, appData.remoteUser, buf, &icsPR);\r
 \r
        } else {\r
            /* Use the rsh program to run telnet program on a gateway host */\r
            if (*appData.remoteUser == NULLCHAR) {\r
                    appData.telnetProgram, appData.icsHost, appData.icsPort);\r
            return OpenRcmd(appData.gateway, appData.remoteUser, buf, &icsPR);\r
 \r
        } else {\r
            /* Use the rsh program to run telnet program on a gateway host */\r
            if (*appData.remoteUser == NULLCHAR) {\r
-               sprintf(buf, "%s %s %s %s %s", appData.remoteShell,\r
+               snprintf(buf, sizeof(buf), "%s %s %s %s %s", appData.remoteShell,\r
                        appData.gateway, appData.telnetProgram,\r
                        appData.icsHost, appData.icsPort);\r
            } else {\r
                        appData.gateway, appData.telnetProgram,\r
                        appData.icsHost, appData.icsPort);\r
            } else {\r
-               sprintf(buf, "%s %s -l %s %s %s %s",\r
+               snprintf(buf, sizeof(buf), "%s %s -l %s %s %s %s",\r
                        appData.remoteShell, appData.gateway, \r
                        appData.remoteUser, appData.telnetProgram,\r
                        appData.icsHost, appData.icsPort);\r
                        appData.remoteShell, appData.gateway, \r
                        appData.remoteUser, appData.telnetProgram,\r
                        appData.icsHost, appData.icsPort);\r
@@ -2345,7 +2345,7 @@ read_from_ics(isr, closure, data, count, error)
 \r
            if (loggedOn && !have_set_title && ics_handle[0] != NULLCHAR) {\r
              char buf[MSG_SIZ];\r
 \r
            if (loggedOn && !have_set_title && ics_handle[0] != NULLCHAR) {\r
              char buf[MSG_SIZ];\r
-             sprintf(buf, "%s@%s", ics_handle, appData.icsHost);\r
+             snprintf(buf, sizeof(buf), "%s@%s", ics_handle, appData.icsHost);\r
              DisplayIcsInteractionTitle(buf);\r
              have_set_title = TRUE;\r
            }\r
              DisplayIcsInteractionTitle(buf);\r
              have_set_title = TRUE;\r
            }\r
@@ -3353,7 +3353,7 @@ ParseBoard12(string)
               &ticking);\r
 \r
     if (n < 21) {\r
               &ticking);\r
 \r
     if (n < 21) {\r
-       sprintf(str, _("Failed to parse board string:\n\"%s\""), string);\r
+        snprintf(str, sizeof(str), _("Failed to parse board string:\n\"%s\""), string);\r
        DisplayError(str, 0);\r
        return;\r
     }\r
        DisplayError(str, 0);\r
        return;\r
     }\r
@@ -6154,7 +6154,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
     if (!strncmp(message, "tellopponent ", 13)) {\r
       if (appData.icsActive) {\r
        if (loggedOn) {\r
     if (!strncmp(message, "tellopponent ", 13)) {\r
       if (appData.icsActive) {\r
        if (loggedOn) {\r
-         sprintf(buf1, "%ssay %s\n", ics_prefix, message + 13);\r
+         snprintf(buf1, sizeof(buf1), "%ssay %s\n", ics_prefix, message + 13);\r
          SendToICS(buf1);\r
        }\r
       } else {\r
          SendToICS(buf1);\r
        }\r
       } else {\r
@@ -6165,7 +6165,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
     if (!strncmp(message, "tellothers ", 11)) {\r
       if (appData.icsActive) {\r
        if (loggedOn) {\r
     if (!strncmp(message, "tellothers ", 11)) {\r
       if (appData.icsActive) {\r
        if (loggedOn) {\r
-         sprintf(buf1, "%swhisper %s\n", ics_prefix, message + 11);\r
+         snprintf(buf1, sizeof(buf1), "%swhisper %s\n", ics_prefix, message + 11);\r
          SendToICS(buf1);\r
        }\r
       }\r
          SendToICS(buf1);\r
        }\r
       }\r
@@ -6174,7 +6174,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
     if (!strncmp(message, "tellall ", 8)) {\r
       if (appData.icsActive) {\r
        if (loggedOn) {\r
     if (!strncmp(message, "tellall ", 8)) {\r
       if (appData.icsActive) {\r
        if (loggedOn) {\r
-         sprintf(buf1, "%skibitz %s\n", ics_prefix, message + 8);\r
+         snprintf(buf1, sizeof(buf1), "%skibitz %s\n", ics_prefix, message + 8);\r
          SendToICS(buf1);\r
        }\r
       } else {\r
          SendToICS(buf1);\r
        }\r
       } else {\r
@@ -6344,7 +6344,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
        || (StrStr(message, "Permission denied") != NULL)) {\r
 \r
        cps->maybeThinking = FALSE;\r
        || (StrStr(message, "Permission denied") != NULL)) {\r
 \r
        cps->maybeThinking = FALSE;\r
-       sprintf(buf1, _("Failed to start %s chess program %s on %s: %s\n"),\r
+       snprintf(buf1, sizeof(buf1), _("Failed to start %s chess program %s on %s: %s\n"),\r
                cps->which, cps->program, cps->host, message);\r
        RemoveInputSource(cps->isr);\r
        DisplayFatalError(buf1, 0, 1);\r
                cps->which, cps->program, cps->host, message);\r
        RemoveInputSource(cps->isr);\r
        DisplayFatalError(buf1, 0, 1);\r
@@ -6362,11 +6362,11 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
                (void) CoordsToAlgebraic(boards[forwardMostMove],\r
                                    PosFlags(forwardMostMove), EP_UNKNOWN,\r
                                    fromY, fromX, toY, toX, promoChar, buf1);\r
                (void) CoordsToAlgebraic(boards[forwardMostMove],\r
                                    PosFlags(forwardMostMove), EP_UNKNOWN,\r
                                    fromY, fromX, toY, toX, promoChar, buf1);\r
-               sprintf(buf2, _("Hint: %s"), buf1);\r
+               snprintf(buf2, sizeof(buf2), _("Hint: %s"), buf1);\r
                DisplayInformation(buf2);\r
            } else {\r
                /* Hint move could not be parsed!? */\r
                DisplayInformation(buf2);\r
            } else {\r
                /* Hint move could not be parsed!? */\r
-               sprintf(buf2,\r
+             snprintf(buf2, sizeof(buf2),\r
                        _("Illegal hint move \"%s\"\nfrom %s chess program"),\r
                        buf1, cps->which);\r
                DisplayError(buf2, 0);\r
                        _("Illegal hint move \"%s\"\nfrom %s chess program"),\r
                        buf1, cps->which);\r
                DisplayError(buf2, 0);\r
@@ -7569,7 +7569,7 @@ InitChessProgram(cps, setup)
     }\r
 \r
     if (cps->sendICS) {\r
     }\r
 \r
     if (cps->sendICS) {\r
-      sprintf(buf, "ics %s\n", appData.icsActive ? appData.icsHost : "-");\r
+      snprintf(buf, sizeof(buf), "ics %s\n", appData.icsActive ? appData.icsHost : "-");\r
       SendToProgram(buf, cps);\r
     }\r
     cps->maybeThinking = FALSE;\r
       SendToProgram(buf, cps);\r
     }\r
     cps->maybeThinking = FALSE;\r
@@ -7617,10 +7617,10 @@ StartChessProgram(cps)
        err = OpenRcmd(cps->host, appData.remoteUser, cps->program, &cps->pr);\r
     } else {\r
        if (*appData.remoteUser == NULLCHAR) {\r
        err = OpenRcmd(cps->host, appData.remoteUser, cps->program, &cps->pr);\r
     } else {\r
        if (*appData.remoteUser == NULLCHAR) {\r
-           sprintf(buf, "%s %s %s", appData.remoteShell, cps->host,\r
+         snprintf(buf, sizeof(buf), "%s %s %s", appData.remoteShell, cps->host,\r
                    cps->program);\r
        } else {\r
                    cps->program);\r
        } else {\r
-           sprintf(buf, "%s %s -l %s %s", appData.remoteShell,\r
+         snprintf(buf, sizeof(buf), "%s %s -l %s %s", appData.remoteShell,\r
                    cps->host, appData.remoteUser, cps->program);\r
        }\r
        err = StartChildProcess(buf, "", &cps->pr);\r
                    cps->host, appData.remoteUser, cps->program);\r
        }\r
        err = StartChildProcess(buf, "", &cps->pr);\r
@@ -8541,7 +8541,7 @@ LoadGameFromFile(filename, n, title, useList)
     } else {\r
        f = fopen(filename, "rb");\r
        if (f == NULL) {\r
     } else {\r
        f = fopen(filename, "rb");\r
        if (f == NULL) {\r
-           sprintf(buf, _("Can't open \"%s\""), filename);\r
+         snprintf(buf, sizeof(buf),  _("Can't open \"%s\""), filename);\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        }\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        }\r
@@ -8768,7 +8768,7 @@ LoadGame(f, gameNumber, title, useList)
     yynewfile(f);\r
 \r
     if (lg && lg->gameInfo.white && lg->gameInfo.black) {\r
     yynewfile(f);\r
 \r
     if (lg && lg->gameInfo.white && lg->gameInfo.black) {\r
-       sprintf(buf, "%s vs. %s", lg->gameInfo.white,\r
+      snprintf(buf, sizeof(buf), "%s vs. %s", lg->gameInfo.white,\r
                lg->gameInfo.black);\r
            DisplayTitle(buf);\r
     } else if (*title != NULLCHAR) {\r
                lg->gameInfo.black);\r
            DisplayTitle(buf);\r
     } else if (*title != NULLCHAR) {\r
@@ -9195,7 +9195,7 @@ LoadPositionFromFile(filename, n, title)
     } else {\r
        f = fopen(filename, "rb");\r
        if (f == NULL) {\r
     } else {\r
        f = fopen(filename, "rb");\r
        if (f == NULL) {\r
-           sprintf(buf, _("Can't open \"%s\""), filename);\r
+            snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename);\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        } else {\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        } else {\r
@@ -9409,7 +9409,7 @@ SaveGameToFile(filename, append)
     } else {\r
        f = fopen(filename, append ? "a" : "w");\r
        if (f == NULL) {\r
     } else {\r
        f = fopen(filename, append ? "a" : "w");\r
        if (f == NULL) {\r
-           sprintf(buf, _("Can't open \"%s\""), filename);\r
+           snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename);\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        } else {\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        } else {\r
@@ -9783,7 +9783,7 @@ SavePositionToFile(filename)
     } else {\r
        f = fopen(filename, "a");\r
        if (f == NULL) {\r
     } else {\r
        f = fopen(filename, "a");\r
        if (f == NULL) {\r
-           sprintf(buf, _("Can't open \"%s\""), filename);\r
+           snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename);\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        } else {\r
            DisplayError(buf, errno);\r
            return FALSE;\r
        } else {\r
index bae7854..b599a8d 100644 (file)
--- a/xboard.c
+++ b/xboard.c
@@ -2148,7 +2148,7 @@ CatchDeleteWindow(Widget w, String procname)
 {
   char buf[MSG_SIZ];
   XSetWMProtocols(xDisplay, XtWindow(w), &wm_delete_window, 1);
 {
   char buf[MSG_SIZ];
   XSetWMProtocols(xDisplay, XtWindow(w), &wm_delete_window, 1);
-  sprintf(buf, "<Message>WM_PROTOCOLS: %s() \n", procname);
+  snprintf(buf, sizeof(buf), "<Message>WM_PROTOCOLS: %s() \n", procname);
   XtAugmentTranslations(w, XtParseTranslationTable(buf));
 }
 
   XtAugmentTranslations(w, XtParseTranslationTable(buf));
 }
 
@@ -2338,8 +2338,8 @@ main(argc, argv)
     i = strlen(p) + strlen("/.xboardXXXXXx.pgn") + 1;
     gameCopyFilename = (char*) malloc(i);
     gamePasteFilename = (char*) malloc(i);
     i = strlen(p) + strlen("/.xboardXXXXXx.pgn") + 1;
     gameCopyFilename = (char*) malloc(i);
     gamePasteFilename = (char*) malloc(i);
-    sprintf(gameCopyFilename, "%s/.xboard%05uc.pgn", p, getpid());
-    sprintf(gamePasteFilename, "%s/.xboard%05up.pgn", p, getpid());
+    snprintf(gameCopyFilename,i, "%s/.xboard%05uc.pgn", p, getpid());
+    snprintf(gamePasteFilename,i, "%s/.xboard%05up.pgn", p, getpid());
 
     XtGetApplicationResources(shellWidget, (XtPointer) &appData,
                              clientResources, XtNumber(clientResources),
 
     XtGetApplicationResources(shellWidget, (XtPointer) &appData,
                              clientResources, XtNumber(clientResources),
@@ -3701,7 +3701,7 @@ void CreateXIMPieces()
            fprintf(stderr, "%d", piece+1);
            for (kind=0; kind<4; kind++) {
                fprintf(stderr, ".");
            fprintf(stderr, "%d", piece+1);
            for (kind=0; kind<4; kind++) {
                fprintf(stderr, ".");
-               sprintf(buf, "%s/%c%s%u.xim",
+               snprintf(buf, sizeof(buf), "%s/%c%s%u.xim",
                        ExpandPathName(appData.pixmapDirectory),
                        ToLower(PieceToChar((ChessSquare)piece)),
                        ximkind[kind], ss);
                        ExpandPathName(appData.pixmapDirectory),
                        ToLower(PieceToChar((ChessSquare)piece)),
                        ximkind[kind], ss);
@@ -3720,7 +3720,7 @@ void CreateXIMPieces()
        /* Load light and dark squares */
        /* If the LSQ and DSQ pieces don't exist, we will
           draw them with solid squares. */
        /* Load light and dark squares */
        /* If the LSQ and DSQ pieces don't exist, we will
           draw them with solid squares. */
-       sprintf(buf, "%s/lsq%u.xim", ExpandPathName(appData.pixmapDirectory), ss);
+       snprintf(buf,sizeof(buf), "%s/lsq%u.xim", ExpandPathName(appData.pixmapDirectory), ss);
        if (access(buf, 0) != 0) {
            useImageSqs = 0;
        } else {
        if (access(buf, 0) != 0) {
            useImageSqs = 0;
        } else {
@@ -3734,7 +3734,7 @@ void CreateXIMPieces()
 
            loadXIM(ximLightSquare, NULL, buf, &xpmLightSquare, NULL);
            fprintf(stderr, _("dark square "));
 
            loadXIM(ximLightSquare, NULL, buf, &xpmLightSquare, NULL);
            fprintf(stderr, _("dark square "));
-           sprintf(buf, "%s/dsq%u.xim",
+           snprintf(buf,sizeof(buf), "%s/dsq%u.xim",
                    ExpandPathName(appData.pixmapDirectory), ss);
            if (appData.debugMode)
              fprintf(stderr, _("(File:%s:) "), buf);
                    ExpandPathName(appData.pixmapDirectory), ss);
            if (appData.debugMode)
              fprintf(stderr, _("(File:%s:) "), buf);
@@ -3823,7 +3823,7 @@ void CreateXPMPieces()
        for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) {
            fprintf(stderr, "%d ", piece+1);
            for (kind=0; kind<4; kind++) {
        for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) {
            fprintf(stderr, "%d ", piece+1);
            for (kind=0; kind<4; kind++) {
-               sprintf(buf, "%s/%c%s%u.xpm",
+             snprintf(buf, sizeof(buf), "%s/%c%s%u.xpm",
                        ExpandPathName(appData.pixmapDirectory),
                        ToLower(PieceToChar((ChessSquare)piece)),
                        xpmkind[kind], ss);
                        ExpandPathName(appData.pixmapDirectory),
                        ToLower(PieceToChar((ChessSquare)piece)),
                        xpmkind[kind], ss);
@@ -3843,7 +3843,7 @@ void CreateXPMPieces()
        /* If the LSQ and DSQ pieces don't exist, we will
           draw them with solid squares. */
        fprintf(stderr, _("light square "));
        /* If the LSQ and DSQ pieces don't exist, we will
           draw them with solid squares. */
        fprintf(stderr, _("light square "));
-       sprintf(buf, "%s/lsq%u.xpm", ExpandPathName(appData.pixmapDirectory), ss);
+       snprintf(buf, sizeof(buf), "%s/lsq%u.xpm", ExpandPathName(appData.pixmapDirectory), ss);
        if (access(buf, 0) != 0) {
            useImageSqs = 0;
        } else {
        if (access(buf, 0) != 0) {
            useImageSqs = 0;
        } else {
@@ -3857,7 +3857,7 @@ void CreateXPMPieces()
                exit(1);
            }
            fprintf(stderr, _("dark square "));
                exit(1);
            }
            fprintf(stderr, _("dark square "));
-           sprintf(buf, "%s/dsq%u.xpm",
+           snprintf(buf, sizeof(buf), "%s/dsq%u.xpm",
                    ExpandPathName(appData.pixmapDirectory), ss);
            if (appData.debugMode) {
                fprintf(stderr, _("(File:%s:) "), buf);
                    ExpandPathName(appData.pixmapDirectory), ss);
            if (appData.debugMode) {
                fprintf(stderr, _("(File:%s:) "), buf);
@@ -3946,17 +3946,17 @@ void ReadBitmap(pm, name, bits, wreq, hreq)
        if (errcode != BitmapSuccess) {
            switch (errcode) {
              case BitmapOpenFailed:
        if (errcode != BitmapSuccess) {
            switch (errcode) {
              case BitmapOpenFailed:
-               sprintf(msg, _("Can't open bitmap file %s"), fullname);
+               snprintf(msg, sizeof(msg), _("Can't open bitmap file %s"), fullname);
                break;
              case BitmapFileInvalid:
                break;
              case BitmapFileInvalid:
-               sprintf(msg, _("Invalid bitmap in file %s"), fullname);
+               snprintf(msg, sizeof(msg), _("Invalid bitmap in file %s"), fullname);
                break;
              case BitmapNoMemory:
                break;
              case BitmapNoMemory:
-               sprintf(msg, _("Ran out of memory reading bitmap file %s"),
+               snprintf(msg, sizeof(msg), _("Ran out of memory reading bitmap file %s"),
                        fullname);
                break;
              default:
                        fullname);
                break;
              default:
-               sprintf(msg, _("Unknown XReadBitmapFile error %d on file %s"),
+               snprintf(msg, sizeof(msg), _("Unknown XReadBitmapFile error %d on file %s"),
                        errcode, fullname);
                break;
            }
                        errcode, fullname);
                break;
            }
@@ -4212,7 +4212,7 @@ void SetupDropMenu()
                                       && !appData.icsActive));
        count = 0;
        while (p && *p++ == dmEnables[i].piece) count++;
                                       && !appData.icsActive));
        count = 0;
        while (p && *p++ == dmEnables[i].piece) count++;
-       sprintf(label, "%s  %d", dmEnables[i].widget, count);
+       snprintf(label, sizeof(label), "%s  %d", dmEnables[i].widget, count);
        j = 0;
        XtSetArg(args[j], XtNlabel, label); j++;
        XtSetValues(entry, args, j);
        j = 0;
        XtSetArg(args[j], XtNlabel, label); j++;
        XtSetValues(entry, args, j);
@@ -6475,7 +6475,7 @@ void AnalyzeModeProc(w, event, prms, nprms)
     char buf[MSG_SIZ];
 
     if (!first.analysisSupport) {
     char buf[MSG_SIZ];
 
     if (!first.analysisSupport) {
-      sprintf(buf, _("%s does not support analysis"), first.tidy);
+      snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
       DisplayError(buf, 0);
       return;
     }
       DisplayError(buf, 0);
       return;
     }
@@ -6517,7 +6517,7 @@ void AnalyzeFileProc(w, event, prms, nprms)
 {
     if (!first.analysisSupport) {
       char buf[MSG_SIZ];
 {
     if (!first.analysisSupport) {
       char buf[MSG_SIZ];
-      sprintf(buf, _("%s does not support analysis"), first.tidy);
+      snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
       DisplayError(buf, 0);
       return;
     }
       DisplayError(buf, 0);
       return;
     }
@@ -7353,7 +7353,7 @@ void InfoProc(w, event, prms, nprms)
      Cardinal *nprms;
 {
     char buf[MSG_SIZ];
      Cardinal *nprms;
 {
     char buf[MSG_SIZ];
-    sprintf(buf, "xterm -e info --directory %s --directory . -f %s &",
+    snprintf(buf, sizeof(buf), "xterm -e info --directory %s --directory . -f %s &",
            INFODIR, INFOFILE);
     system(buf);
 }
            INFODIR, INFOFILE);
     system(buf);
 }
@@ -7370,7 +7370,7 @@ void ManProc(w, event, prms, nprms)
       name = prms[0];
     else
       name = "xboard";
       name = prms[0];
     else
       name = "xboard";
-    sprintf(buf, "xterm -e man %s &", name);
+    snprintf(buf, sizeof(buf), "xterm -e man %s &", name);
     system(buf);
 }
 
     system(buf);
 }
 
@@ -7404,7 +7404,7 @@ void AboutProc(w, event, prms, nprms)
 #else
     char *zippy = "";
 #endif
 #else
     char *zippy = "";
 #endif
-    sprintf(buf, "%s%s\n\n%s\n%s\n%s\n\n%s%s\n%s",
+    snprintf(buf, sizeof(buf), "%s%s\n\n%s\n%s\n%s\n\n%s%s\n%s",
            programVersion, zippy,
            "Copyright 1991 Digital Equipment Corporation",
            "Enhancements Copyright 1992-2009 Free Software Foundation",
            programVersion, zippy,
            "Copyright 1991 Digital Equipment Corporation",
            "Enhancements Copyright 1992-2009 Free Software Foundation",
@@ -7462,7 +7462,7 @@ void DisplayMessage(message, extMessage)
 
     if (extMessage) {
        if (*message) {
 
     if (extMessage) {
        if (*message) {
-           sprintf(buf, "%s  %s", message, extMessage);
+           snprintf(buf, sizeof(buf), "%s  %s", message, extMessage);
            message = buf;
        } else {
            message = extMessage;
            message = buf;
        } else {
            message = extMessage;
@@ -7492,11 +7492,11 @@ void DisplayTitle(text)
        strcpy(icon, text);
        strcpy(title, text);
     } else if (appData.icsActive) {
        strcpy(icon, text);
        strcpy(title, text);
     } else if (appData.icsActive) {
-       sprintf(icon, "%s", appData.icsHost);
-       sprintf(title, "%s: %s", programName, appData.icsHost);
+        snprintf(icon, sizeof(icon), "%s", appData.icsHost);
+       snprintf(title, sizeof(title),"%s: %s", programName, appData.icsHost);
     } else if (appData.cmailGameName[0] != NULLCHAR) {
     } else if (appData.cmailGameName[0] != NULLCHAR) {
-       sprintf(icon, "%s", "CMail");
-       sprintf(title, "%s: %s", programName, "CMail");
+        snprintf(icon, sizeof(icon), "%s", "CMail");
+       snprintf(title,sizeof(title), "%s: %s", programName, "CMail");
 #ifdef GOTHIC
     // [HGM] license: This stuff should really be done in back-end, but WinBoard already had a pop-up for it
     } else if (gameInfo.variant == VariantGothic) {
 #ifdef GOTHIC
     // [HGM] license: This stuff should really be done in back-end, but WinBoard already had a pop-up for it
     } else if (gameInfo.variant == VariantGothic) {
@@ -7513,7 +7513,7 @@ void DisplayTitle(text)
        strcpy(title, programName);
     } else {
        strcpy(icon, first.tidy);
        strcpy(title, programName);
     } else {
        strcpy(icon, first.tidy);
-       sprintf(title, "%s: %s", programName, first.tidy);
+       snprintf(title,sizeof(title), "%s: %s", programName, first.tidy);
     }
     i = 0;
     XtSetArg(args[i], XtNiconName, (XtArgVal) icon);    i++;
     }
     i = 0;
     XtSetArg(args[i], XtNiconName, (XtArgVal) icon);    i++;
@@ -7537,7 +7537,7 @@ void DisplayError(message, error)
            fprintf(stderr, "%s: %s: %s\n",
                    programName, message, strerror(error));
        }
            fprintf(stderr, "%s: %s: %s\n",
                    programName, message, strerror(error));
        }
-       sprintf(buf, "%s: %s", message, strerror(error));
+       snprintf(buf,sizeof(buf), "%s: %s", message, strerror(error));
        message = buf;
     }
     ErrorPopUp(_("Error"), message, FALSE);
        message = buf;
     }
     ErrorPopUp(_("Error"), message, FALSE);
@@ -7573,7 +7573,7 @@ void DisplayFatalError(message, error, status)
     } else {
        fprintf(stderr, "%s: %s: %s\n",
                programName, message, strerror(error));
     } else {
        fprintf(stderr, "%s: %s: %s\n",
                programName, message, strerror(error));
-       sprintf(buf, "%s: %s", message, strerror(error));
+       snprintf(buf, sizeof(buf), "%s: %s", message, strerror(error));
        message = buf;
     }
     if (appData.popupExitMessage && boardWidget && XtIsRealized(boardWidget)) {
        message = buf;
     }
     if (appData.popupExitMessage && boardWidget && XtIsRealized(boardWidget)) {
@@ -7762,7 +7762,7 @@ PlaySound(name)
     putc(BELLCHAR, stderr);
   } else {
     char buf[2048];
     putc(BELLCHAR, stderr);
   } else {
     char buf[2048];
-    sprintf(buf, "%s '%s' &", appData.soundProgram, name);
+    snprintf(buf, sizeof(buf), "%s '%s' &", appData.soundProgram, name);
     system(buf);
   }
 }
     system(buf);
   }
 }
@@ -8281,9 +8281,9 @@ int OpenTelnet(host, port, pr)
     char cmdLine[MSG_SIZ];
 
     if (port[0] == NULLCHAR) {
     char cmdLine[MSG_SIZ];
 
     if (port[0] == NULLCHAR) {
-       sprintf(cmdLine, "%s %s", appData.telnetProgram, host);
+      snprintf(cmdLine, sizeof(cmdLine), "%s %s", appData.telnetProgram, host);
     } else {
     } else {
-       sprintf(cmdLine, "%s %s %s", appData.telnetProgram, host, port);
+      snprintf(cmdLine,sizeof(cmdLine), "%s %s %s", appData.telnetProgram, host, port);
     }
     return StartChildProcess(cmdLine, "", pr);
 }
     }
     return StartChildProcess(cmdLine, "", pr);
 }