major bug in 2.10.1 expire

Henry Spencer henry at utzoo.UUCP
Fri Oct 7 10:11:18 AEST 1983


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



More information about the Net.bugs mailing list