]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
ptserver: testpt.c format-overflow warning
authorCheyenne Wills <cwills@sinenomine.net>
Tue, 2 Jul 2019 22:58:28 +0000 (16:58 -0600)
committerStephan Wiesand <stephan.wiesand@desy.de>
Sun, 26 Jan 2020 12:05:46 +0000 (07:05 -0500)
GCC 9 introduced new warnings/errors and is flagging a sprintf with a
format-overflow warning.  With --checking-enabled, this error is causing
testpt.c to fail during compile.

Change the buffer size from 16 bytes to PR_MAXNAMELEN+1 and use snprintf
instead of sprintf. Generate an error message and exit if snprintf
truncates the string.

Reviewed-on: https://gerrit.openafs.org/13663
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 4a57cc54dfb6789a86ee735360ee44209c1a901a)

Change-Id: I2f8012e7fb4384f3ad877d2c9beb5f00b03716b8
Reviewed-on: https://gerrit.openafs.org/13730
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/ptserver/testpt.c

index 8deb88340108087c0e0727691f158a3209a209b9..3888718e23d5b7e0c6044e91b32cb56c67d10394 100644 (file)
@@ -255,7 +255,7 @@ void
 CreateGroup(int g)
 {
     afs_int32 code;
-    char name[16];
+    char name[PR_MAXNAMELEN + 1];
     afs_int32 id = 0;
     afs_int32 owner = 0;
     char *ownerName = NULL;
@@ -286,7 +286,12 @@ CreateGroup(int g)
        break;
     }
 
-    sprintf(name, "%s:%s%d", ownerName, createPrefix, g);
+    code = snprintf(name, sizeof(name), "%s:%s%d", ownerName, createPrefix, g);
+    if (code >= sizeof(name)) {
+       fprintf(stderr, "%s: generated group name is too long: %s:%s%d\n",
+               whoami, ownerName, createPrefix, g);
+       exit(13);
+    }
     code = ubik_PR_NewEntry(pruclient, 0, name, PRGRP, owner, &id);
     if (code) {
        if (code == PREXIST) {