aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2000-07-17 22:24:52 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2000-07-17 22:24:52 +0000
commit6200918df73fc142d3eb5eda735afb5197f9f2f2 (patch)
treec25d989b92758317d75fd765be6f4fcbf3dd2efe /libexec
parentc0b0d54e106d9ee877807a0e205c66da75f040f6 (diff)
Notes
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ftpd/ftpcmd.y10
1 files changed, 8 insertions, 2 deletions
diff --git a/libexec/ftpd/ftpcmd.y b/libexec/ftpd/ftpcmd.y
index bb5bff97ff86a..9e34221207936 100644
--- a/libexec/ftpd/ftpcmd.y
+++ b/libexec/ftpd/ftpcmd.y
@@ -1481,7 +1481,9 @@ sizecmd(filename)
case TYPE_L:
case TYPE_I: {
struct stat stbuf;
- if (stat(filename, &stbuf) < 0 || !S_ISREG(stbuf.st_mode))
+ if (stat(filename, &stbuf) < 0)
+ perror_reply(550, filename);
+ else if (!S_ISREG(stbuf.st_mode))
reply(550, "%s: not a plain file.", filename);
else
reply(213, "%qu", stbuf.st_size);
@@ -1496,7 +1498,11 @@ sizecmd(filename)
perror_reply(550, filename);
return;
}
- if (fstat(fileno(fin), &stbuf) < 0 || !S_ISREG(stbuf.st_mode)) {
+ if (fstat(fileno(fin), &stbuf) < 0) {
+ perror_reply(550, filename);
+ (void) fclose(fin);
+ return;
+ } else if (!S_ISREG(stbuf.st_mode)) {
reply(550, "%s: not a plain file.", filename);
(void) fclose(fin);
return;