tar et al: die if bb_copyfd_size copies less than asked for.
(we have bb_copyfd_exact_size now for that kind of usage)
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index dff8944..9d05442 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -22,8 +22,8 @@
 	struct sockaddr_in *s_in;
 } ftp_host_info_t;
 
-static char verbose_flag = 0;
-static char do_continue = 0;
+static char verbose_flag;
+static char do_continue;
 
 static int ftpcmd(const char *s1, const char *s2, FILE *stream, char *buf)
 {
@@ -112,7 +112,9 @@
 		const char *local_path, char *server_path)
 {
 	char buf[512];
-	off_t filesize = 0;
+/* I think 'filesize' usage here is bogus. Let's see... */
+	//off_t filesize = -1;
+#define filesize ((off_t)-1)
 	int fd_data;
 	int fd_local = -1;
 	off_t beg_range = 0;
@@ -124,11 +126,10 @@
 	fd_data = xconnect_ftpdata(server, buf);
 
 	if (ftpcmd("SIZE ", server_path, control_stream, buf) == 213) {
-		filesize = BB_STRTOOFF(buf + 4, NULL, 10);
-		if (errno || filesize < 0)
-			bb_error_msg_and_die("SIZE error: %s", buf + 4);
+		//filesize = BB_STRTOOFF(buf + 4, NULL, 10);
+		//if (errno || filesize < 0)
+		//	bb_error_msg_and_die("SIZE error: %s", buf + 4);
 	} else {
-		filesize = -1;
 		do_continue = 0;
 	}
 
@@ -154,7 +155,8 @@
 		if (ftpcmd(buf, NULL, control_stream, buf) != 350) {
 			do_continue = 0;
 		} else {
-			filesize -= beg_range;
+			//if (filesize != -1)
+			//	filesize -= beg_range;
 		}
 	}
 
@@ -173,11 +175,11 @@
 
 	/* Copy the file */
 	if (filesize != -1) {
-		if (-1 == bb_copyfd_size(fd_data, fd_local, filesize))
-			exit(EXIT_FAILURE);
+		if (bb_copyfd_size(fd_data, fd_local, filesize) == -1)
+			return EXIT_FAILURE;
 	} else {
-		if (-1 == bb_copyfd_eof(fd_data, fd_local))
-			exit(EXIT_FAILURE);
+		if (bb_copyfd_eof(fd_data, fd_local) == -1)
+			return EXIT_FAILURE;
 	}
 
 	/* close it all down */
@@ -277,14 +279,11 @@
 	/* content-length of the file */
 	unsigned opt;
 	char *port = "ftp";
-
 	/* socket to ftp server */
 	FILE *control_stream;
 	struct sockaddr_in s_in;
-
 	/* continue a prev transfer (-c) */
 	ftp_host_info_t *server;
-
 	int (*ftp_action)(ftp_host_info_t *, FILE *, const char *, char *) = NULL;
 
 	/* Check to see if the command is ftpget or ftput */