From d87a9adeb66f405441be35b12048012a527c122d Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 8 Nov 2012 10:39:43 -0500 Subject: [PATCH] Windows: cm_IsStatusValid Break out validity checking for AFSFetchStatus responses into a new function. Change-Id: I15d2ed12ed2d9ca9a24d6f717243d823db22d30c Reviewed-on: http://gerrit.openafs.org/8403 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/WINNT/afsd/cm_scache.c | 16 +++++++++++++--- src/WINNT/afsd/cm_scache.h | 2 ++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index c10de8b62..de54cc0ee 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -1610,6 +1610,17 @@ dv_diff(afs_uint64 dv1, afs_uint64 dv2) return (afs_uint32)(dv1 - dv2); } +long +cm_IsStatusValid(AFSFetchStatus *statusp) +{ + if (statusp->InterfaceVersion != 0x1 || + !(statusp->FileType > 0 && statusp->FileType <= SymbolicLink)) { + return 0; + } + + return 1; +} + /* merge in a response from an RPC. The scp must be locked, and the callback * is optional. * @@ -1674,9 +1685,8 @@ long cm_MergeStatus(cm_scache_t *dscp, } #endif /* AFS_FREELANCE_CLIENT */ - if (statusp->InterfaceVersion != 0x1 || - !(statusp->FileType > 0 && statusp->FileType <= SymbolicLink)) { - osi_Log3(afsd_logp, "Merge, Failure scp 0x%p Invalid InterfaceVersion %d FileType %d", + if (!cm_IsStatusValid(statusp)) { + osi_Log3(afsd_logp, "Merge: Bad Status scp 0x%p Invalid InterfaceVersion %d FileType %d", scp, statusp->InterfaceVersion, statusp->FileType); return CM_ERROR_INVAL; } diff --git a/src/WINNT/afsd/cm_scache.h b/src/WINNT/afsd/cm_scache.h index c933e53e8..fd7c7da8f 100644 --- a/src/WINNT/afsd/cm_scache.h +++ b/src/WINNT/afsd/cm_scache.h @@ -392,6 +392,8 @@ extern long cm_SyncOp(cm_scache_t *, struct cm_buf *, struct cm_user *, extern void cm_SyncOpDone(cm_scache_t *, struct cm_buf *, afs_uint32); +extern long cm_IsStatusValid(AFSFetchStatus *statusp); + extern long cm_MergeStatus(cm_scache_t * dscp, cm_scache_t * scp, struct AFSFetchStatus * statusp, struct AFSVolSync * volsyncp, -- 2.39.5