From 54938e721c849c10059a8114034a506a97848605 Mon Sep 17 00:00:00 2001 From: Michal Ruprich Date: Wed, 21 Apr 2021 15:52:03 +0200 Subject: [PATCH] Resolves: #1949120 - ftp put failed with 'ftp: Out of memory' when stacksize set to unlimited --- ftp.spec | 7 ++++++- netkit-ftp-0.17-out-of-memory.patch | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 netkit-ftp-0.17-out-of-memory.patch diff --git a/ftp.spec b/ftp.spec index c4755f0..0caa048 100644 --- a/ftp.spec +++ b/ftp.spec @@ -1,7 +1,7 @@ Summary: The standard UNIX FTP (File Transfer Protocol) client Name: ftp Version: 0.17 -Release: 87%{?dist} +Release: 88%{?dist} License: BSD with advertising Source0: ftp://ftp.linux.org.uk/pub/linux/Networking/netkit/netkit-ftp-%{version}.tar.gz URL: ftp://ftp.linux.org.uk/pub/linux/Networking/netkit @@ -40,6 +40,7 @@ Patch32: netkit-ftp-0.17-lsn-timeout.patch Patch33: netkit-ftp-0.17-getlogin.patch Patch34: netkit-ftp-0.17-token.patch Patch35: netkit-ftp-0.17-linelen-segfault.patch +Patch36: netkit-ftp-0.17-out-of-memory.patch BuildRequires: glibc-devel, readline-devel, ncurses-devel BuildRequires: perl-interpreter, gcc @@ -90,6 +91,7 @@ file transfers. %patch33 -p1 -b .getlogin %patch34 -p1 -b .token %patch35 -p1 -b .linelen-segfault +%patch36 -p1 -b .out-of-memory %build sh configure --with-c-compiler=%{__cc} --enable-ipv6 @@ -119,6 +121,9 @@ make INSTALLROOT=${RPM_BUILD_ROOT} install %{_mandir}/man5/netrc.* %changelog +* Wed Apr 21 2021 Michal Ruprich - 0.17-88 +- Resolves: #1949120 - ftp put failed with 'ftp: Out of memory' when stacksize set to unlimited + * Thu Apr 15 2021 Mohan Boddu - 0.17-87 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 diff --git a/netkit-ftp-0.17-out-of-memory.patch b/netkit-ftp-0.17-out-of-memory.patch new file mode 100644 index 0000000..7fe5616 --- /dev/null +++ b/netkit-ftp-0.17-out-of-memory.patch @@ -0,0 +1,29 @@ +diff -up netkit-ftp-0.17/ftp/glob.c.arg_max1 netkit-ftp-0.17/ftp/glob.c +--- netkit-ftp-0.17/ftp/glob.c.arg_max1 2012-01-24 12:59:09.335021131 +0100 ++++ netkit-ftp-0.17/ftp/glob.c 2012-01-24 13:05:27.752028732 +0100 +@@ -55,10 +55,15 @@ char glob_rcsid[] = + #include "ftp_var.h" /* for protos only */ + #include "glob.h" + ++#ifndef LOWEST_ARG_MAX ++ #define LOWEST_ARG_MAX 2621440 /* ARG_MAX for default stack size limit 10240 */ ++#endif ++ + #define QUOTE 0200 + #define TRIM 0177 + #define eq(a,b) (strcmp(a, b)==0) +-#define GAVSIZ (sysconf(_SC_ARG_MAX)/6) ++#define max(a,b) (a > b ? a : b) ++#define GAVSIZ (max((int)sysconf(_SC_ARG_MAX), LOWEST_ARG_MAX)/6) + #define isdir(d) ((d.st_mode & S_IFMT) == S_IFDIR) + + const char *globerr; +@@ -159,7 +164,7 @@ ginit(entry *agargv) + gargv = agargv; + sortbas = agargv; + gargc = 0; +- gnleft = sysconf(_SC_ARG_MAX) - 4; ++ gnleft = max((int)sysconf(_SC_ARG_MAX), LOWEST_ARG_MAX) - 4; + } + + static