From 4a9d15a2e4d3e91261dfa1c9fe08f75d88fd166d Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 20 Aug 2007 02:00:48 +0000 Subject: [PATCH] windows-fix-recursion-detection-20070819 the recursion detection code did not take "." and ".." into account. --- src/WINNT/afsd/cm_vnodeops.c | 4 +++- src/WINNT/afsd/cm_volume.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index 9103162d7..46aac2e06 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -1855,8 +1855,10 @@ long cm_NameI(cm_scache_t *rootSCachep, char *pathp, long flags, userp, reqp, &nscp); if (code == 0) { + if (!strcmp(component,"..")) + fid_count -=2; for ( i=0; ifid, &fids[i]) ) { + if ( strcmp(component,".") && !cm_FidCmp(&nscp->fid, &fids[i]) ) { code = CM_ERROR_TOO_MANY_SYMLINKS; cm_ReleaseSCache(nscp); nscp = NULL; diff --git a/src/WINNT/afsd/cm_volume.c b/src/WINNT/afsd/cm_volume.c index a558445e3..53d2409dc 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -1453,7 +1453,7 @@ static char * volstatus_str(enum volstatus vs) void cm_VolumeStatusNotification(cm_volume_t * volp, afs_uint32 volID, enum volstatus old, enum volstatus new) { - char volstr[CELL_MAXNAMELEN + VL_MAXNAMELEN]; + char volstr[CELL_MAXNAMELEN + VL_MAXNAMELEN]=""; char *ext = ""; if (volID == volp->rw.ID) -- 2.39.5