You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.1 KiB
72 lines
2.1 KiB
# --- 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 <stdio.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
+#include <unistd.h> |
|
|
|
#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 |
|
|
|
|