Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Jan 2010 10:59:00 +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-8@freebsd.org
Subject:   svn commit: r202462 - stable/8/usr.bin/tftp
Message-ID:  <201001171059.o0HAx08b099995@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gavin
Date: Sun Jan 17 10:58:59 2010
New Revision: 202462
URL: http://svn.freebsd.org/changeset/base/202462

Log:
  Merge r201429:
    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/8/usr.bin/tftp/tftp.c
Directory Properties:
  stable/8/usr.bin/tftp/   (props changed)

Modified: stable/8/usr.bin/tftp/tftp.c
==============================================================================
--- stable/8/usr.bin/tftp/tftp.c	Sun Jan 17 09:37:31 2010	(r202461)
+++ stable/8/usr.bin/tftp/tftp.c	Sun Jan 17 10:58:59 2010	(r202462)
@@ -140,6 +140,7 @@ send_data:
 		    (struct sockaddr *)&peer, peer.ss_len);
 		if (n != size + 4) {
 			warn("sendto");
+			txrx_error = 1;
 			goto abort;
 		}
 		read_ahead(file, convert);
@@ -153,6 +154,7 @@ send_data:
 			alarm(0);
 			if (n < 0) {
 				warn("recvfrom");
+				txrx_error = 1;
 				goto abort;
 			}
 			if (!serv.ss_family)
@@ -160,6 +162,7 @@ send_data:
 			else if (!cmpport((struct sockaddr *)&serv,
 			    (struct sockaddr *)&from)) {
 				warn("server port mismatch");
+				txrx_error = 1;
 				goto abort;
 			}
 			peer = from;
@@ -202,7 +205,6 @@ abort:
 	stopclock();
 	if (amount > 0)
 		printstats("Sent", amount);
-	txrx_error = 1;
 }
 
 /*
@@ -255,6 +257,7 @@ send_ack:
 		    peer.ss_len) != size) {
 			alarm(0);
 			warn("sendto");
+			txrx_error = 1;
 			goto abort;
 		}
 		write_behind(file, convert);
@@ -268,6 +271,7 @@ send_ack:
 			alarm(0);
 			if (n < 0) {
 				warn("recvfrom");
+				txrx_error = 1;
 				goto abort;
 			}
 			if (!serv.ss_family)
@@ -275,6 +279,7 @@ send_ack:
 			else if (!cmpport((struct sockaddr *)&serv,
 			    (struct sockaddr *)&from)) {
 				warn("server port mismatch");
+				txrx_error = 1;
 				goto abort;
 			}
 			peer = from;
@@ -325,7 +330,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.o0HAx08b099995>