fs: Catch pioctl failure in mkmount
authorSimon Wilkinson <sxw@your-file-system.com>
Tue, 26 Feb 2013 11:55:32 +0000 (11:55 +0000)
committerStephan Wiesand <stephan.wiesand@desy.de>
Tue, 3 Jun 2014 16:08:14 +0000 (12:08 -0400)
If the VIOC_FILE_CELL_NAME pioctl fails in fs mkmount, return an
error to the caller, instead of ploughing on with potentially bad
data.

Caught by coverity (#988418)

Reviewed-on: http://gerrit.openafs.org/9267
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 3ad7ba106dea28277b9e1f7a7370ba17b9fb3d17)

Change-Id: I239ff7e567b01ecbec0314ec61f79d2fd0064de7
Reviewed-on: http://gerrit.openafs.org/11008
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

src/venus/fs.c

index ba4776d..13d6585 100644 (file)
@@ -1887,9 +1887,13 @@ defect #3069
        blob.in_size = 0;
        blob.out_size = AFS_PIOCTL_MAXSIZE;
        blob.out = space;
-       code =
-           pioctl(Parent(as->parms[0].items->data), VIOC_FILE_CELL_NAME,
-                  &blob, 1);
+       code = pioctl(Parent(as->parms[0].items->data), VIOC_FILE_CELL_NAME,
+                     &blob, 1);
+       if (code) {
+          fprintf(stderr,
+                  "%s: couldn't get cell name for file's parent\n", pn);
+          return 1;
+       }
     }
 
     code = GetCellName(cellName ? cellName : space, &info);