From 5e565490627350a2082685318103bbf679e406d3 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 20 Aug 2007 02:02:03 +0000 Subject: [PATCH] DEVEL15-windows-fix-recursion-detection-20070819 the recursion detection code did not take "." and ".." into account. (cherry picked from commit 4a9d15a2e4d3e91261dfa1c9fe08f75d88fd166d) --- 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 3de994f51..6db7a17ce 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -1857,8 +1857,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 498228362..2f45b2618 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -1457,7 +1457,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