summaryrefslogtreecommitdiffstats
path: root/libexec/ftpd/popen.c
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/ftpd/popen.c')
-rw-r--r--libexec/ftpd/popen.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libexec/ftpd/popen.c b/libexec/ftpd/popen.c
index 8a739dc..9f80507 100644
--- a/libexec/ftpd/popen.c
+++ b/libexec/ftpd/popen.c
@@ -143,6 +143,9 @@ ftpd_popen(char *program, char *type)
}
(void)close(pdes[1]);
}
+ /* Drop privileges before proceeding */
+ if (getuid() != geteuid() && setuid(geteuid()) < 0)
+ _exit(1);
if (strcmp(gargv[0], _PATH_LS) == 0) {
/* Reset getopt for ls_main() */
optreset = optind = optopt = 1;
OpenPOWER on IntegriCloud