> No offense meant, but doesn't this show precisely what CVS's strength > is? Had you recorded the fix, we wouldn't be still looking for it :-) It shows that I should keep better records of what I do each day. Even if I had the CVS source under CVS, I probably would have thrown out the repository when I ported the new one. Further, I'm not sure whether the bug was in CVS or in APE. If I remembered what was broken, I could run history to find it. Case in point: I just found it, by poking around for files in /sys/src/ape modified about the same date as when I ported the new CVS (which I remember being near when I found the bug). CVS wouldn't have helped any more than the dump here. The bug is in /sys/src/ape/lib/ap/plan9/getcwd.c. Replace the entire file with: #include "lib.h" #include #include #include #include #include #include #include "sys9.h" #include "dir.h" char* getcwd(char *buf, size_t len) { int fd; fd = _OPEN(".", OREAD); if(fd < 0) { errno = EACCES; return 0; } if(_FD2PATH(fd, buf, len) < 0) { errno = EIO; _CLOSE(fd); return 0; } _CLOSE(fd); return buf; } Exercise to the reader: find the fd leak in the original. Russ