diff options
author | cperciva <cperciva@FreeBSD.org> | 2011-12-23 15:00:37 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2011-12-23 15:00:37 +0000 |
commit | 6d6844d3db7a60700aba1a03b565183435faab20 (patch) | |
tree | 7006a336edec7e2e646d67e3d9e61837cdb2fa3f /libexec/ftpd/popen.c | |
parent | d5cd91d7ec78cfb129089f34ccefa523b77425ce (diff) | |
download | FreeBSD-src-6d6844d3db7a60700aba1a03b565183435faab20.zip FreeBSD-src-6d6844d3db7a60700aba1a03b565183435faab20.tar.gz |
Fix a problem whereby a corrupt DNS record can cause named to crash. [11:06]
Add an API for alerting internal libc routines to the presence of
"unsafe" paths post-chroot, and use it in ftpd. [11:07]
Fix a buffer overflow in telnetd. [11:08]
Make pam_ssh ignore unpassphrased keys unless the "nullok" option is
specified. [11:09]
Add sanity checking of service names in pam_start. [11:10]
Approved by: so (cperciva)
Approved by: re (bz)
Security: FreeBSD-SA-11:06.bind
Security: FreeBSD-SA-11:07.chroot
Security: FreeBSD-SA-11:08.telnetd
Security: FreeBSD-SA-11:09.pam_ssh
Security: FreeBSD-SA-11:10.pam
Diffstat (limited to 'libexec/ftpd/popen.c')
-rw-r--r-- | libexec/ftpd/popen.c | 3 |
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; |