vol: Fix two buffers being one char too short 22/12722/2
authorAnders Kaseorg <andersk@mit.edu>
Sat, 2 Sep 2017 03:37:07 +0000 (23:37 -0400)
committerBenjamin Kaduk <kaduk@mit.edu>
Sat, 2 Sep 2017 19:41:19 +0000 (15:41 -0400)
Fixes these warnings:

namei_ops.c: In function 'namei_copy_on_write':
namei_ops.c:1328:31: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  snprintf(path, sizeof(path), "%s-tmp", name.n_path);
                               ^~~~~~~~
namei_ops.c:1328:2: note: 'snprintf' output between 5 and 260 bytes into a destination of size 259
  snprintf(path, sizeof(path), "%s-tmp", name.n_path);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vol_split.c: In function 'split_volume':
vol_split.c:576:22: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=]
     sprintf(symlink, "#%s", V_name(newvol));
                      ^~~~~
vol_split.c:576:5: note: 'sprintf' output between 2 and 33 bytes into a destination of size 32
     sprintf(symlink, "#%s", V_name(newvol));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Change-Id: If212ebc29fa3fe10fe1e2f70dfb5f7509c269ae9
Reviewed-on: https://gerrit.openafs.org/12722
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/vol/namei_ops.c
src/volser/vol_split.c

index 19aea95..aee57a3 100644 (file)
@@ -1317,7 +1317,7 @@ namei_copy_on_write(IHandle_t *h)
     if (afs_stat(name.n_path, &tstat) < 0)
        return EIO;
     if (tstat.st_nlink > 1) {                   /* do a copy on write */
-       char path[259];
+       char path[NAMEI_PATH_LEN + 4];
        char *buf;
        afs_size_t size;
        ssize_t tlen;
index 29f5646..fa42a7c 100644 (file)
@@ -518,7 +518,7 @@ createMountpoint(Volume *vol, Volume *newvol, struct VnodeDiskObject *parent,
     AFSFid fid;
     struct timeval now;
     afs_uint32 newvN;
-    char symlink[32];
+    char symlink[VNAMESIZE + 1];
     ssize_t rc;
 
     FT_GetTimeOfDay(&now, 0);