From: Jeffrey Altman Date: Mon, 20 Aug 2007 02:02:03 +0000 (+0000) Subject: DEVEL15-windows-fix-recursion-detection-20070819 X-Git-Tag: openafs-devel-1_5_23~20 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=5e565490627350a2082685318103bbf679e406d3;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-fix-recursion-detection-20070819 the recursion detection code did not take "." and ".." into account. (cherry picked from commit 4a9d15a2e4d3e91261dfa1c9fe08f75d88fd166d) --- 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)