Use a more robust idiom When converting sprintf() to snprintf()
authorMarc Balmer <marc@msys.ch>
Thu, 9 Aug 2012 05:08:05 +0000 (07:08 +0200)
committerJon Trulson <jon@radscan.com>
Thu, 9 Aug 2012 17:52:17 +0000 (11:52 -0600)
don't use the idiom

char foo[BUFSIZ];
snprintf(foo, BUFSIZ, ....);

but

char foo[BUFSIZ];
snprintf(foo, sizeo foo, ....);

because this will automatically catch situations where the size of foo
is later changed, e.g. like  foo[BUFSIZ + 8];

Fix another use of sprintf.

cde/programs/dtaction/Main.c
cde/programs/dtterm/util/logger.c

index 13f2d24f1cade8134cd4a30227cec158333c8481..b06a9f99e265e4f6a0cf40b807749c623290373e 100644 (file)
@@ -898,7 +898,7 @@ GetUserPrompt( void )
    XmString cancelLabel;
    XmString okLabel;
 
-   snprintf(prompt, BUFSIZ, (GETMESSAGE(1,5, "Enter password for user %s:")), 
+   snprintf(prompt, sizeof prompt, (GETMESSAGE(1,5, "Enter password for user %s:")), 
             appArgs.user);
    xmString = XmStringCreateLocalized(prompt);
    xmString2 =XmStringCreateLocalized(GETMESSAGE(1,6, "Action Invoker - Password"));
index e7b43eeea448a19999c8be019ddfe46b7e8623b5..0f51669d4d1d6db2c4fc54bd8523edb6f3f1462c 100644 (file)
@@ -146,7 +146,7 @@ logStartStop(char *progName, int logfd, int start)
     /* remove the trailing '\n'... */
     tstring[strlen(tstring) - 1] = '\0';
 
-    (void) sprintf(buffer, "%s: %s %s\n",
+    (void) snprintf(buffer, sizeof buffer, "%s: %s %s\n",
            (savedProgName && *savedProgName) ? savedProgName : "logger",
            start ? "starting" : "terminating",
            tstring);