summaryrefslogtreecommitdiffstats
path: root/libexec/ftpd
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2001-03-19 19:11:00 +0000
committerjlemon <jlemon@FreeBSD.org>2001-03-19 19:11:00 +0000
commite62162bcfed469d20700ca4e9be98574f1b728c1 (patch)
tree8a86ad9995e318b5714573473b9967aac2002642 /libexec/ftpd
parentb7db4c94c39d3b8f980a3c3f3ce1166ce5c3004e (diff)
downloadFreeBSD-src-e62162bcfed469d20700ca4e9be98574f1b728c1.zip
FreeBSD-src-e62162bcfed469d20700ca4e9be98574f1b728c1.tar.gz
Teach ftpd about the new GLOB_MAXPATH flag.
Diffstat (limited to 'libexec/ftpd')
-rw-r--r--libexec/ftpd/ftpd.c9
-rw-r--r--libexec/ftpd/popen.c2
2 files changed, 11 insertions, 0 deletions
diff --git a/libexec/ftpd/ftpd.c b/libexec/ftpd/ftpd.c
index 43ab6bf..b5b6136 100644
--- a/libexec/ftpd/ftpd.c
+++ b/libexec/ftpd/ftpd.c
@@ -189,6 +189,13 @@ static int auth_pam __P((struct passwd**, const char*));
char *pid_file = NULL;
/*
+ * Limit number of pathnames that glob can return.
+ * A limit of 0 indicates the number of pathnames is unlimited.
+ */
+#define MAXGLOBARGS 16384
+#
+
+/*
* Timeout intervals for retrying connections
* to hosts that don't accept PORT cmds. This
* is a kludge, but given the problems with TCP...
@@ -2621,6 +2628,8 @@ send_file_list(whichf)
int flags = GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
memset(&gl, 0, sizeof(gl));
+ gl.gl_matchc = MAXGLOBARGS;
+ flags |= GLOB_MAXPATH;
freeglob = 1;
if (glob(whichf, flags, 0, &gl)) {
reply(550, "not found");
diff --git a/libexec/ftpd/popen.c b/libexec/ftpd/popen.c
index 74f34e3..e8d3cfb 100644
--- a/libexec/ftpd/popen.c
+++ b/libexec/ftpd/popen.c
@@ -107,6 +107,8 @@ ftpd_popen(program, type)
int flags = GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
memset(&gl, 0, sizeof(gl));
+ gl.gl_matchc = MAXGLOBARGS;
+ flags |= GLOB_MAXPATH;
if (glob(argv[argc], flags, NULL, &gl))
gargv[gargc++] = strdup(argv[argc]);
else
OpenPOWER on IntegriCloud