[net.bugs.uucp] bug in uucico causes spooled files to get removed

rjwhite@watmath.UUCP (RJ White) (03/25/86)

Last night we lost alot of stuff queued for ihnp4 because it looks like
their filesystem was full and couldn't create any temporary files.
The code checks for this and if sending the file bombs because of this,
then it isn't supposed to remove the file that it couldn't send.
The problem is, the wrong byte is checked in the status message sent back.
The following is a diff so that it will now FAIL instead of trying to
continue since there is no point in continuing if the disk is full.
The file is cntrl.c


*** cntrl.c	Mon Mar 24 17:55:04 1986
--- new_cntrl.c	Mon Mar 24 17:57:54 1986
***************
*** 318,325
  			ASSERT(role == MASTER, "WRONG ROLE", "", role);
  			fclose(fp);
  			fp = NULL;
! 			if (msg[1] != '4')
! 				unlinkdf(W_DFILE);
  			goto top;
  		}
  

--- 318,328 -----
  			ASSERT(role == MASTER, "WRONG ROLE", "", role);
  			fclose(fp);
  			fp = NULL;
! 			if (msg[2] == '4') {	/* from EM_NOTMP , msg="SN4" */
! 				(*Turnoff)();
! 				return( FAIL );
! 			}
! 			unlinkdf(W_DFILE);
  			goto top;
  		}
  
***************
*** 390,396
  			WMESG(SNDFILE, EM_NOTMP);
  			logent("CAN'T OPEN", "DENIED");
  			unlinkdf(Dfile);
! 			goto top;
  		}
  
  		WMESG(SNDFILE, YES);

--- 393,400 -----
  			WMESG(SNDFILE, EM_NOTMP);
  			logent("CAN'T OPEN", "DENIED");
  			unlinkdf(Dfile);
! 			(*Turnoff)();
! 			return( FAIL );
  		}
  
  		WMESG(SNDFILE, YES);

andrew@stc.co.uk (04/01/86)

In article <1804@watmath.UUCP> rjwhite@watmath.UUCP writes:
| Last night we lost alot of stuff queued for ihnp4 because it looks like
| their filesystem was full and couldn't create any temporary files.
| The code checks for this and if sending the file bombs because of this,
| then it isn't supposed to remove the file that it couldn't send.
| The problem is, the wrong byte is checked in the status message sent back.
| The following is a diff so that it will now FAIL instead of trying to
| continue since there is no point in continuing if the disk is full.
| The file is cntrl.c
 
I noticed this a few months ago, I thought it more appropriate to turn
the line round --- that way ihnp4 (in your case) would get a chance to
offload the work it had queued (is this a word in American? -- lined
up) for you, thus increasing the chances of the problem fixing itself.

Anyone wanting the fixes for the uk / euug versions of uucp, and
probably others, but I can't find those any longer, please drop me a
line.  If there is a large demand, then I'll post them, otherwise mail
seems more appropriate.

-- 
Regards,
	Andrew Macpherson.	<andrew@tcom.stc.co.uk>
{aivru,btnix,concurrent,datlog,iclbra,iclkid,idec,inset,root44,stl,ukc}
	!stc!andrew