Here are the bugs in dcp/uupc

Dave Arnold dave at arnold.UUCP
Fri Sep 16 00:52:25 AEST 1988


Okay, there seems to be enough interest---So here are the bugs I found
in dcp.  Sorry I am posting the bugs this way.  I am running a little
short on time.

Bugs:

1) dcp uses strcpy and strncpy to copy data in and out of buffers, it
never makes use of block copies like memcpy.  This means that using
dcp to transfer binary files will never work.

2) in the function gmachine, I believe it improperly handles RJ
control packets, or NAK's.  In this segment of code:


	CASE NAK:
		nerr++;
		acktmr = naktmr = 0; /* stop ack/nak timer */
		printmsg( 5, "**got NAK %d", rack );
nloop:
		if (between(swl, rack, swu)) { /* resend
rack->(swu-1) */
			i1 = rack;
			gspack(DATA, rwl, rack, outlen[i1], outbuf[i1]);
			printmsg( 5, "***resent %d", rack );
			ftimer[i1] = time(&ttmp);
			rack = (1 + rack) % MAXSEQ;
			goto nloop;
		}

Upon receipt of a RJ, the yyy(rack) field of the control packet
contains the last good packet received, this section of code will
resend all packets in the send window starting at yyy---It should
start at yyy + 1 % MAXSEQ.  This caused my version to hang
sometimes---Never sending the correct packet that the other
receiver expected.

That's all for now.  I will try and post anything else I find.
Hope this helps somebody.
-- 
Dave Arnold
dave at arnold.UUCP	{cci632|uunet}!ccicpg!arnold!dave



More information about the Comp.sources.bugs mailing list