# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../netkit-ftp/fedora_arg_max.patch # Copyright (C) 2009 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- diff -up netkit-ftp-0.17/ftp/glob.c.arg_max netkit-ftp-0.17/ftp/glob.c --- netkit-ftp-0.17/ftp/glob.c.arg_max 2008-04-07 11:41:14.000000000 +0200 +++ netkit-ftp-0.17/ftp/glob.c 2008-04-07 12:01:53.000000000 +0200 @@ -50,6 +50,7 @@ char glob_rcsid[] = #include #include #include +#include #include "ftp_var.h" /* for protos only */ #include "glob.h" @@ -57,7 +58,7 @@ char glob_rcsid[] = #define QUOTE 0200 #define TRIM 0177 #define eq(a,b) (strcmp(a, b)==0) -#define GAVSIZ (ARG_MAX/6) +#define GAVSIZ (sysconf(_SC_ARG_MAX)/6) #define isdir(d) ((d.st_mode & S_IFMT) == S_IFDIR) const char *globerr; @@ -115,7 +116,7 @@ char ** ftpglob(const char *v) { char agpath[BUFSIZ]; - entry agargv[GAVSIZ]; + entry *agargv; centry vv[2]; vv[0].text = v; vv[1].text = NULL; @@ -133,6 +134,8 @@ ftpglob(const char *v) /* added ()'s to sizeof, (ambigious math for the compiler) */ lastgpathp = agpath + (sizeof(agpath)- 2); + agargv = (entry *)malloc(sizeof (entry) * GAVSIZ); + if (agargv == NULL) fatal("Out of memory"); ginit(agargv); globcnt = 0; collect(v); @@ -156,7 +159,7 @@ ginit(entry *agargv) gargv = agargv; sortbas = agargv; gargc = 0; - gnleft = ARG_MAX - 4; + gnleft = sysconf(_SC_ARG_MAX) - 4; } static @@ -674,6 +677,7 @@ efree(entry *av) { int i; for (i=0; av[i].text; i++) free(av[i].text); + free((void *)av); } static