[net.news] major bug in 2.10.1 expire

henry@utzoo.UUCP (Henry Spencer) (10/07/83)

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