From: Jeffrey Altman Date: Fri, 7 Mar 2008 17:46:00 +0000 (+0000) Subject: DEVEL15-windows-scache-verification-20080307 X-Git-Tag: openafs-devel-1_5_34~60 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=217e7d6889220ac14d00987ac97944b5890b2df8;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-scache-verification-20080307 LICENSE MIT Add a hash value verification check for stat cache entries (cherry picked from commit 45200a26985678ccad051385f50f94321eb98256) --- diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index 41271a937..c36484af3 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -463,6 +463,8 @@ cm_ValidateSCache(void) for ( i=0; i < cm_data.scacheHashTableSize; i++ ) { for ( scp = cm_data.scacheHashTablep[i]; scp; scp = scp->nextp ) { + afs_uint32 hash; + hash = CM_SCACHE_HASH(&scp->fid); if (scp->magic != CM_SCACHE_MAGIC) { afsi_log("cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC"); fprintf(stderr, "cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC\n"); @@ -483,6 +485,11 @@ cm_ValidateSCache(void) fprintf(stderr, "cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC\n"); return -12; } + if (hash != i) { + afsi_log("cm_ValidateSCache failure: scp hash != hash index"); + fprintf(stderr, "cm_ValidateSCache failure: scp hash != hash index\n"); + return -13; + } } }