svn commit: r202463 - stable/7/usr.bin/tftp

Gavin Atkinson gavin at FreeBSD.org
Sun Jan 17 10:59:07 UTC 2010


Author: gavin
Date: Sun Jan 17 10:59:07 2010
New Revision: 202463
URL: http://svn.freebsd.org/changeset/base/202463

Log:
  Merge r201429 from head:
    Fix return code in the case of successful file transfer, broken in
    tftp.c 1.13
  
  PR:		bin/117452
  Submitted by:	Spencer Minear  minear securecomputing.com
  Approved by:	ed (mentor, implicit)

Modified:
  stable/7/usr.bin/tftp/tftp.c
Directory Properties:
  stable/7/usr.bin/tftp/   (props changed)

Modified: stable/7/usr.bin/tftp/tftp.c
==============================================================================
--- stable/7/usr.bin/tftp/tftp.c	Sun Jan 17 10:58:59 2010	(r202462)
+++ stable/7/usr.bin/tftp/tftp.c	Sun Jan 17 10:59:07 2010	(r202463)
@@ -143,6 +143,7 @@ send_data:
 		    (struct sockaddr *)&peer, peer.ss_len);
 		if (n != size + 4) {
 			warn("sendto");
+			txrx_error = 1;
 			goto abort;
 		}
 		read_ahead(file, convert);
@@ -156,6 +157,7 @@ send_data:
 			alarm(0);
 			if (n < 0) {
 				warn("recvfrom");
+				txrx_error = 1;
 				goto abort;
 			}
 			if (!serv.ss_family)
@@ -163,6 +165,7 @@ send_data:
 			else if (!cmpport((struct sockaddr *)&serv,
 			    (struct sockaddr *)&from)) {
 				warn("server port mismatch");
+				txrx_error = 1;
 				goto abort;
 			}
 			peer = from;
@@ -205,7 +208,6 @@ abort:
 	stopclock();
 	if (amount > 0)
 		printstats("Sent", amount);
-	txrx_error = 1;
 }
 
 /*
@@ -261,6 +263,7 @@ send_ack:
 		    peer.ss_len) != size) {
 			alarm(0);
 			warn("sendto");
+			txrx_error = 1;
 			goto abort;
 		}
 		write_behind(file, convert);
@@ -274,6 +277,7 @@ send_ack:
 			alarm(0);
 			if (n < 0) {
 				warn("recvfrom");
+				txrx_error = 1;
 				goto abort;
 			}
 			if (!serv.ss_family)
@@ -281,6 +285,7 @@ send_ack:
 			else if (!cmpport((struct sockaddr *)&serv,
 			    (struct sockaddr *)&from)) {
 				warn("server port mismatch");
+				txrx_error = 1;
 				goto abort;
 			}
 			peer = from;
@@ -331,7 +336,6 @@ abort:						/* ok to ack, since user */
 	stopclock();
 	if (amount > 0)
 		printstats("Received", amount);
-	txrx_error = 1;
 }
 
 static int


More information about the svn-src-all mailing list