Windows: Protect against null volp dereference
authorJeffrey Altman <jaltman@your-file-system.com>
Sun, 27 May 2012 15:20:11 +0000 (11:20 -0400)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 1 Jun 2012 06:29:41 +0000 (23:29 -0700)
In cm_RecycleSCache cm_GetVolumeByFID can fail leaving 'volp'
a NULL pointer.  Do not call cm_PutVolume() if cm_GetVolumeByFID
fails.

Change-Id: I57eaf5d40130ecad75a312ef5487cdfa6e7367e3
Reviewed-on: http://gerrit.openafs.org/7506
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>

src/WINNT/afsd/cm_scache.c

index 31afbb0..b8034fa 100644 (file)
@@ -173,9 +173,12 @@ long cm_RecycleSCache(cm_scache_t *scp, afs_int32 flags)
          !cm_accessPerFileCheck) {
         cm_volume_t *volp = cm_GetVolumeByFID(&scp->fid);
 
-        if (!(volp && (volp->flags & CM_VOLUMEFLAG_DFS_VOLUME)))
-            cm_EAccesClearParentEntries(&fid);
-        cm_PutVolume(volp);
+        if (volp) {
+            if (!(volp->flags & CM_VOLUMEFLAG_DFS_VOLUME))
+                cm_EAccesClearParentEntries(&fid);
+
+            cm_PutVolume(volp);
+        }
     }
 
     /* invalidate so next merge works fine;