From owner-svn-src-all@FreeBSD.ORG Mon Jan 18 23:28:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D43DC1065672; Mon, 18 Jan 2010 23:28:25 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C44828FC18; Mon, 18 Jan 2010 23:28:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0INSPp1009925; Mon, 18 Jan 2010 23:28:25 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0INSPQs009922; Mon, 18 Jan 2010 23:28:25 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <201001182328.o0INSPQs009922@svn.freebsd.org> From: Ed Schouten Date: Mon, 18 Jan 2010 23:28:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r202604 - head/libexec/ftpd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 23:28:25 -0000 Author: ed Date: Mon Jan 18 23:28:25 2010 New Revision: 202604 URL: http://svn.freebsd.org/changeset/base/202604 Log: Really disable wtmp logging when chrooting. Also perform a small cleanup to ftpd_logwtmp(). Just use a NULL parameter for the username to indicate a logout, instead of an empty string. Reported by: Alexey Shuvaev Modified: head/libexec/ftpd/ftpd.c head/libexec/ftpd/logwtmp.c Modified: head/libexec/ftpd/ftpd.c ============================================================================== --- head/libexec/ftpd/ftpd.c Mon Jan 18 23:13:22 2010 (r202603) +++ head/libexec/ftpd/ftpd.c Mon Jan 18 23:28:25 2010 (r202604) @@ -1178,8 +1178,8 @@ end_login(void) #endif (void) seteuid(0); - if (logged_in && dowtmp && !dochroot) - ftpd_logwtmp(wtmpid, "", NULL); + if (logged_in && dowtmp) + ftpd_logwtmp(wtmpid, NULL, NULL); pw = NULL; #ifdef LOGIN_CAP setusercontext(NULL, getpwuid(0), 0, @@ -1482,7 +1482,10 @@ skip: ; chrootdir = NULL; - if (dowtmp && !dochroot) + /* Disable wtmp logging when chrooting. */ + if (dochroot || guest) + dowtmp = 0; + if (dowtmp) ftpd_logwtmp(wtmpid, pw->pw_name, (struct sockaddr *)&his_addr); logged_in = 1; @@ -2730,9 +2733,9 @@ void dologout(int status) { - if (logged_in && dowtmp && !dochroot) { + if (logged_in && dowtmp) { (void) seteuid(0); - ftpd_logwtmp(wtmpid, "", NULL); + ftpd_logwtmp(wtmpid, NULL, NULL); } /* beware of flushing buffers after a SIGPIPE */ _exit(status); Modified: head/libexec/ftpd/logwtmp.c ============================================================================== --- head/libexec/ftpd/logwtmp.c Mon Jan 18 23:13:22 2010 (r202603) +++ head/libexec/ftpd/logwtmp.c Mon Jan 18 23:28:25 2010 (r202604) @@ -60,7 +60,7 @@ ftpd_logwtmp(char *id, char *user, struc memset(&ut, 0, sizeof(ut)); - if (*user != '\0') { + if (user != NULL) { /* Log in. */ ut.ut_type = USER_PROCESS; (void)strncpy(ut.ut_user, user, sizeof(ut.ut_user));