summaryrefslogtreecommitdiffstats
path: root/libexec/ftpd/ftpd.c
diff options
context:
space:
mode:
authoryar <yar@FreeBSD.org>2006-01-21 12:34:28 +0000
committeryar <yar@FreeBSD.org>2006-01-21 12:34:28 +0000
commita692e4fc423a0fabe2bef02b6a6dd21c9afde339 (patch)
tree6bd3ff94e685d3588f95e4c870f56b06f6111d85 /libexec/ftpd/ftpd.c
parentc86031149b98392f2ac755ec253d69e9de5a32d1 (diff)
downloadFreeBSD-src-a692e4fc423a0fabe2bef02b6a6dd21c9afde339.zip
FreeBSD-src-a692e4fc423a0fabe2bef02b6a6dd21c9afde339.tar.gz
The daemon's child shouldn't go on with the for loop
over ctl_sock's -- it is solely the parent daemon's job. So just break out of the loop in the child. MFC after: 5 days
Diffstat (limited to 'libexec/ftpd/ftpd.c')
-rw-r--r--libexec/ftpd/ftpd.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/libexec/ftpd/ftpd.c b/libexec/ftpd/ftpd.c
index 9590f78..a5a60a4 100644
--- a/libexec/ftpd/ftpd.c
+++ b/libexec/ftpd/ftpd.c
@@ -496,16 +496,17 @@ main(int argc, char *argv[], char **envp)
(struct sockaddr *)&his_addr,
&addrlen);
if (fd >= 0) {
- if ((pid = fork()) == 0) {
- /* child */
- (void) dup2(fd, 0);
- (void) dup2(fd, 1);
- close(ctl_sock[i]);
- } else
+ if ((pid = fork()) == 0)
+ break;
+ else
close(fd);
}
}
if (pid == 0) {
+ /* child */
+ (void) dup2(fd, 0);
+ (void) dup2(fd, 1);
+ close(ctl_sock[i]);
if (pfh != NULL)
pidfile_close(pfh);
break;
OpenPOWER on IntegriCloud