Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!henry From: henry@utzoo.UUCP (Henry Spencer) Newsgroups: net.bugs,net.news,net.news.b Subject: major bug in 2.10.1 expire Message-ID: <3242@utzoo.UUCP> Date: Thu, 6-Oct-83 20:11:18 EDT Article-I.D.: utzoo.3242 Posted: Thu Oct 6 20:11:18 1983 Date-Received: Thu, 6-Oct-83 20:11:18 EDT Organization: U of Toronto Zoology Lines: 22 The 2.10 and 2.10.1 expire (there's only one line different between them, and it doesn't affect this problem) blow up badly when asked to archive news on a V7 system. The problem is that expire.c/ulall() calls the mkparents() routine and checks the returned value. Surprise, surprise, mkparents() doesn't return a value! What you are actually getting, quite by accident, is the return code from the chown() system call that is the last action in mkparents() -- a call that will invariably fail on a standard V7. The result is that any expired article which needs a new directory in the archive tree will create the directory but will then be thrown away. The *next* article in that group will be fine, since the directory is already there. The fix is quite simple. In expire.c, about line 387, change if (mkparents(newname) == 0) to mkparents(newname); Oh Almighty Authors of B news: how did this ever get past lint, guys? -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry