]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
windows-afsd-symlink-20090327
authorJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 27 Mar 2009 17:58:02 +0000 (17:58 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 27 Mar 2009 17:58:02 +0000 (17:58 +0000)
LICENSE MIT

Increase max symlink limit to 64 and remove the repeated fid
recursion test.  Breaks too many things.

src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/cm_vnodeops.h

index 04ddb091f612fe46fbf33d45b855e52ff29b8fff..480396b90b0eab13dae8d5261b18b31a9e5ca66f 100644 (file)
@@ -1932,17 +1932,13 @@ long cm_NameI(cm_scache_t *rootSCachep, clientchar_t *pathp, long flags,
                         fid_count = i+1;
                     } else {
                         /* add the new fid to the list */
-                        for ( i=0; i<fid_count; i++) {
-                            if ( !cm_FidCmp(&nscp->fid, &fids[i]) ) {
-                                code = CM_ERROR_TOO_MANY_SYMLINKS;
-                                cm_ReleaseSCache(nscp);
-                                nscp = NULL;
-                                break;
-                            }
-                        }
-                        if (i == fid_count && fid_count < MAX_FID_COUNT) {
-                            fids[fid_count++] = nscp->fid;
-                        }
+                        if (fid_count == MAX_FID_COUNT) {
+                            code = CM_ERROR_TOO_MANY_SYMLINKS;
+                            cm_ReleaseSCache(nscp);
+                            nscp = NULL;
+                            break;
+                        }       
+                        fids[fid_count++] = nscp->fid;
                     }
                 }
 
index 985a1fb320f955d70d12a1a6955b52cc156aba71..0c3a8a402927e5aabd82900e3fb3abb37a1848a2 100644 (file)
@@ -237,7 +237,7 @@ extern cm_key_t cm_GenerateKey(afs_uint16 session_id, afs_offs_t process_id, afs
 
 extern int cm_KeyEquals(cm_key_t * k1, cm_key_t * k2, int flags);
 
-#define MAX_SYMLINK_COUNT 16
+#define MAX_SYMLINK_COUNT 64
 
 /* make this big enough so that one buffer of dir pages won't overflow.  We'll
  * check anyway, but we want to minimize the chance that we have to leave stuff