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.
|
Summary: The standard UNIX FTP (File Transfer Protocol) client.
|
||||||
Name: ftp
|
Name: ftp
|
||||||
Version: 0.17
|
Version: 0.17
|
||||||
Release: 27
|
Release: 28
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Applications/Internet
|
Group: Applications/Internet
|
||||||
Source0: ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/netkit-ftp-%{version}.tar.bz2
|
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
|
Patch7: netkit-ftp-locale.patch
|
||||||
Patch8: netkit-ftp-0.17-printf.patch
|
Patch8: netkit-ftp-0.17-printf.patch
|
||||||
Patch9: netkit-ftp-0.17-longint.patch
|
Patch9: netkit-ftp-0.17-longint.patch
|
||||||
|
Patch10: netkit-ftp-0.17-vsftp165083.patch
|
||||||
BuildRoot: /var/tmp/%{name}-root
|
BuildRoot: /var/tmp/%{name}-root
|
||||||
BuildRequires: gcc, glibc-devel, readline-devel, ncurses-devel, perl
|
BuildRequires: gcc, glibc-devel, readline-devel, ncurses-devel, perl
|
||||||
|
|
||||||
@ -36,6 +37,7 @@ file transfers.
|
|||||||
%patch7 -p1 -b .locale
|
%patch7 -p1 -b .locale
|
||||||
%patch8 -p1 -b .printf
|
%patch8 -p1 -b .printf
|
||||||
%patch9 -p1 -b .longint
|
%patch9 -p1 -b .longint
|
||||||
|
%patch10 -p1 -b .vsftp165083
|
||||||
|
|
||||||
%build
|
%build
|
||||||
sh configure --with-c-compiler=gcc --enable-ipv6
|
sh configure --with-c-compiler=gcc --enable-ipv6
|
||||||
@ -69,7 +71,13 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_mandir}/man5/netrc.*
|
%{_mandir}/man5/netrc.*
|
||||||
|
|
||||||
%changelog
|
%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
|
- overflow using 'hash mode' (printing '#' but
|
||||||
not reading data from network - #79367)
|
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