[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/ftp/devel netkit-ftp-0.17-vsftp165083.patch, NONE, 1.1 ftp.spec, 1.17, 1.18



Author: praszyk

Update of /cvs/dist/rpms/ftp/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv25935

Modified Files:
	ftp.spec 
Added Files:
	netkit-ftp-0.17-vsftp165083.patch 
Log Message:
This 'hack' will avoid a bug in ftp-server (see #165083).


netkit-ftp-0.17-vsftp165083.patch:
 ftp.c |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletion(-)

--- NEW FILE netkit-ftp-0.17-vsftp165083.patch ---
--- ./netkit-ftp-0.17/ftp/ftp.c.rasold	2005-08-29 16:07:35.000000000 +0200
+++ ./netkit-ftp-0.17/ftp/ftp.c	2005-08-30 10:58:10.000000000 +0200
@@ -582,6 +582,7 @@
 	volatile long long bytes = 0, hashbytes = HASHBYTES;
 	char buf[BUFSIZ], *bufp;
 	const char *volatile lmode;
+        int old_code_l;
 
 	if (verbose && printnames) {
 		if (local && *local != '-')
@@ -799,7 +800,35 @@
 	(void) fclose(dout);
 	/* closes data as well, so discard it */
 	data = -1;
-	(void) getreply(0);
+	old_code_l = code;
+	(void) getreply (0);
+
+	/* Following "if" will avoid a bug #165083 in ftp-server */
+	/* It can be later removed.                              */
+	if (old_code_l == 150 && code == 150 && cpend == 1
+	    && sunique == 1 && cin !=  NULL && fileno (cin) >=  0 ) {
+		#include <sys/poll.h>
+		struct pollfd  fds_events_l [2] ;
+		int rc;
+
+		fds_events_l [0] .fd = fileno (cin);
+		fds_events_l [0] .events = POLLIN | POLLERR | POLLHUP;
+           
+		rc = poll (fds_events_l, 1, 5000);
+		switch (rc) {
+		case  1:
+			(void) getreply (0);
+			break;
+		case  0:
+			fprintf (stderr, "ftp: no answer from ftp-server "
+			                 "(more than 5 sec).\n");
+			break;
+		case -1:
+			perror("ftp: poll");
+			break;
+		}
+	}
+
 	(void) signal(SIGINT, oldintr);
 	if (oldintp)
 		(void) signal(SIGPIPE, oldintp);


Index: ftp.spec
===================================================================
RCS file: /cvs/dist/rpms/ftp/devel/ftp.spec,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ftp.spec	23 Aug 2005 08:06:53 -0000	1.17
+++ ftp.spec	30 Aug 2005 09:13:43 -0000	1.18
@@ -1,7 +1,7 @@
 Summary: The standard UNIX FTP (File Transfer Protocol) client.
 Name: ftp
 Version: 0.17
-Release: 27
+Release: 28
 License: BSD
 Group: Applications/Internet
 Source0: ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/netkit-ftp-%{version}.tar.bz2
@@ -14,6 +14,7 @@
 Patch7: netkit-ftp-locale.patch
 Patch8: netkit-ftp-0.17-printf.patch
 Patch9: netkit-ftp-0.17-longint.patch
+Patch10: netkit-ftp-0.17-vsftp165083.patch
 BuildRoot: /var/tmp/%{name}-root
 BuildRequires: gcc, glibc-devel, readline-devel, ncurses-devel, perl
 
@@ -36,6 +37,7 @@
 %patch7 -p1 -b .locale
 %patch8 -p1 -b .printf
 %patch9 -p1 -b .longint
+%patch10 -p1 -b .vsftp165083
 
 %build
 sh configure --with-c-compiler=gcc --enable-ipv6
@@ -69,7 +71,13 @@
 %{_mandir}/man5/netrc.*
 
 %changelog
-* Mon Aug 22 2005 Petr Raszyk <praszyk redhat com> - 0.17-26
+* Tue Aug 30 2005 Petr Raszyk <praszyk redhat com> - 0.17-28
+- This 'hack' will avoid a bug in ftp-server
+  (  < vsftpd-2.0.1-5   ). See #165083 (server prints the 
+  '150 FILE:...' line twice).
+  This patch can be (later ?) removed. 
+
+* Mon Aug 22 2005 Petr Raszyk <praszyk redhat com> - 0.17-27
 - overflow using 'hash mode' (printing '#' but
   not reading data from network - #79367)
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]