summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/appl/gssftp/ftpd/ChangeLog8
-rw-r--r--src/appl/gssftp/ftpd/ftpcmd.y15
2 files changed, 17 insertions, 6 deletions
diff --git a/src/appl/gssftp/ftpd/ChangeLog b/src/appl/gssftp/ftpd/ChangeLog
index c02c68047..7577d5697 100644
--- a/src/appl/gssftp/ftpd/ChangeLog
+++ b/src/appl/gssftp/ftpd/ChangeLog
@@ -1,3 +1,11 @@
+2001-11-30 Tom Yu <tlyu@mit.edu>
+
+ * ftpcmd.y (pathname): Handle returns from ftpglob() better so
+ that errors get sent via reply(), while causing some match
+ failures to match to simply return $1, so the higher level can
+ deal. Previously, some failures would cause synch problems since
+ NULL would be returned and no reply was sent.
+
2001-10-11 Mitchell Berger <mitchb@mit.edu>
* ftpd.M: Remove improper formatting from the .SH NAME section, as it
diff --git a/src/appl/gssftp/ftpd/ftpcmd.y b/src/appl/gssftp/ftpd/ftpcmd.y
index 282697e58..f7f16122a 100644
--- a/src/appl/gssftp/ftpd/ftpcmd.y
+++ b/src/appl/gssftp/ftpd/ftpcmd.y
@@ -811,13 +811,16 @@ pathname: pathstring
char **vv;
vv = ftpglob((char *) $1);
- if (vv == NULL || globerr != NULL) {
- reply(550, globerr);
- $$ = NULL;
+ $$ = (vv != NULL) ? *vv : NULL;
+ if ($$ == NULL) {
+ if (globerr == NULL)
+ $$ = $1;
+ else {
+ reply(550, "%s", globerr);
+ free((char *) $1);
+ }
} else
- $$ = *vv;
-
- free((char *) $1);
+ free((char *) $1);
} else
$$ = $1;
}