Avoid format truncation warnings 74/13274/4
authorAndrew Deason <adeason@sinenomine.net>
Tue, 7 Aug 2018 22:27:24 +0000 (17:27 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 5 Oct 2018 13:13:28 +0000 (09:13 -0400)
With gcc 7.3, we start getting several warnings like the following:

vutil.c: In function ‘VWalkVolumeHeaders’:
vutil.c:860:34: error: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 63 [-Werror=format-truncation=]
      snprintf(name, VMAXPATHLEN, "%s" OS_DIRSEP "%s", partpath, dentry->d_name);

Most or all of these truncations should be okay, but increase the size
of the relevant buffers so we can build with warning checking turned
on.

Change-Id: Iac62d6fcfa46f523c34bf1b0ebc2770d3d67c174
Reviewed-on: https://gerrit.openafs.org/13274
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/aklog/klog.c
src/vol/voldefs.h
src/volser/restorevol.c

index ebeb006..26e14c9 100644 (file)
@@ -215,7 +215,7 @@ whoami(struct ktc_token *atoken,
     int *vicep)
 {
     int code;
-    char tempname[PR_MAXNAMELEN + 1];
+    char tempname[2*PR_MAXNAMELEN];
 
     code = pr_Initialize(0, AFSDIR_CLIENT_ETC_DIRPATH, cellconfig->name);
     if (code)
index 57bebe6..8137404 100644 (file)
@@ -69,7 +69,7 @@
 #define        VHDRNAMELEN (VFORMATDIGITS + 1 + sizeof(VHDREXT) - 1) /* must match VFORMAT */
 
 /* Maximum length (including trailing NUL) of a volume external path name. */
-#define VMAXPATHLEN 64
+#define VMAXPATHLEN 512
 
 #if defined(AFS_NAMEI_ENV) && !defined(AFS_NT40_ENV)
 
index 0f28875..184951c 100644 (file)
@@ -800,8 +800,8 @@ WorkerBee(struct cmd_syndesc *as, void *arock)
     afs_int32 type, count, vcount;
     DIR *dirP, *dirQ;
     struct dirent *dirE, *dirF;
-    char name[MAXNAMELEN];
-    char thisdir[MAXPATHLEN], *t;
+    char name[2*MAXNAMELEN+1];
+    char thisdir[MAXPATHLEN+4], *t;
     struct DumpHeader dh;      /* Defined in dump.h */
 #if 0/*ndef HAVE_GETCWD*/      /* XXX enable when autoconf happens */
     extern char *getwd();