rjk (12/23/82)
Lou Salkind pointed out that 14-byte filenames may not get linked across correctly in my uusquish program. I have ensured that sizeof(dir.d_name) bytes are now null-terminated and I have cancelled and re-posted the source as UUSQUISH 1.2. This bug does not manifest itself on our 11/70s' because of the arrangement of consecutive directory structures in memory. In this case, the dir.d_ino of the following dir struct almost always starts with a zero-byte, effectively null terminating the previous dir.d_name. I have reprimanded myself severely for "posting a bug", and extend my thanx to Lou for bringing it to my attention so quickly. You know, we could start a net.phu for "Program Hostile User" group. People participating could rip apart submitted code and suggest enhancements or point out errors. This could produce some real nice code! This is my last official act for this year, so Merry Christmas all. Randy King ..we13!rjk
smk (12/25/82)
Be careful when using uusquish. If there are subdirectories, they are moved to the brand new directory from the temporary directory via link. What happens is that the directory entry for .. in the subdirectory does not agree with the new directory. An easy way to see this is to do a du after running uusquish on a test case. The <Bad directory> message occurs because the chdir ("..") fails. The inode entry pointed to by .. had been removed in uusquish via an unlink. I am trying to write a general squish program fashioned after uusquish, which was a great idea. (This should be a standard UN*X utility.) I haven't figured out the best way to handle the above problem, but right now it will make sure you don't try to move a mountable file system from /etc/fstab. It uses the new -ldir package. I'll post it to net.sources when it is done. --steve