This 'hack' will avoid a bug in ftp-server (see #165083).
This commit is contained in:
parent
08c5489ce8
commit
71a717b5c2
12
ftp.spec
12
ftp.spec
@ -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 @@ Patch6: netkit-ftp-0.17-runique_mget.patch
|
||||
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 @@ file transfers.
|
||||
%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 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||
%{_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)
|
||||
|
||||
|
47
netkit-ftp-0.17-vsftp165083.patch
Normal file
47
netkit-ftp-0.17-vsftp165083.patch
Normal file
@ -0,0 +1,47 @@
|
||||
--- ./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);
|
Loading…
Reference in New Issue
Block a user