Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Jan 2010 10:59:07 +0000 (UTC)
From:      Gavin Atkinson <gavin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r202463 - stable/7/usr.bin/tftp
Message-ID:  <201001171059.o0HAx7re000169@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001171059.o0HAx7re000169>