Windows: cm_GetNewSCache must return NULL on failure
authorJeffrey Altman <jaltman@your-file-system.com>
Tue, 3 Apr 2012 13:09:42 +0000 (09:09 -0400)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 3 Apr 2012 14:40:48 +0000 (07:40 -0700)
cm_GetNewSCache was leaking a valid cm_scache_t pointer in some
failure cases.  On failure, explicitly set the return value to
NULL.

Change-Id: I074b278f969224aa535abe256ac33a90d0f4e62d
Reviewed-on: http://gerrit.openafs.org/7037
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>

src/WINNT/afsd/cm_scache.c

index ab37205..b94f80f 100644 (file)
@@ -339,7 +339,7 @@ cm_GetNewSCache(afs_uint32 locked)
                              */
                             cm_AdjustScacheLRU(scp);
 
-                            /* and we're done */
+                            /* and we're done - SUCCESS */
                             osi_assertx(!(scp->flags & CM_SCACHEFLAG_INHASH), "CM_SCACHEFLAG_INHASH set");
                             goto done;
                         }
@@ -362,6 +362,8 @@ cm_GetNewSCache(afs_uint32 locked)
 
             osi_Log2(afsd_logp, "GetNewSCache all scache entries in use (attempt = %d, count = %u)", attempt, count);
         }
+        /* FAILURE */
+        scp = NULL;
         goto done;
     }