shaddock@RTI.RTI.ORG (Mike Shaddock) (03/15/89)
There are several commercial and research products which are now using the "superroot" concept of extending the current Unix directory structure across a network. The superroot is a directory above / which contains entries for other systems on the network, and is similar to // on Apollo systems. FREEDOMNET, TRFS, the NewCastle Connection, and serveral other products all use the superroot. Unfortunately the pathname canonicalization code in fileio.c breaks on superrooted systems. The following is a patch for fileio.c to fix this problem. ==================== cut here ==================== *** /tmp/,RCSt1013124 Mon Mar 14 13:20:02 1988 --- /tmp/,RCSt2013124 Mon Mar 14 13:20:04 1988 *************** *** 705,710 **** --- 705,712 ---- (p[2] == '/' || p[2] == 0)) p += 2; else if (!strncmp (p, "/..", 3) + /* /.. at start of filename is meaningful on superroot systems */ + && o != target && (p[3] == '/' || p[3] == 0)) { while (o != target && *--o != '/') ==================== cut here too ====================