Date: Sun, 23 Sep 2001 16:13:57 +0400 From: "Andrey A. Chernov" <ache@nagual.pp.ru> To: Robert Watson <rwatson@FreeBSD.ORG> Cc: security@FreeBSD.ORG, current@FreeBSD.ORG, developers@FreeBSD.ORG, security-officer@FreeBSD.ORG Subject: Patch for review (was Re: ~/.login_conf disabling exact reasons wanted) Message-ID: <20010923161354.A426@nagual.pp.ru> In-Reply-To: <20010922225821.A88800@nagual.pp.ru> References: <20010922151116.A82718@nagual.pp.ru> <Pine.NEB.3.96L.1010922133112.39778A-100000@fledge.watson.org> <20010922224243.A88511@nagual.pp.ru> <20010922225821.A88800@nagual.pp.ru>
index | next in thread | previous in thread | raw e-mail
On Sat, Sep 22, 2001 at 22:58:21 +0400, Andrey A. Chernov wrote:
> I'll work on the proper fix tomorrow.
Planned for commit. Please, review and/or comment.
--- login_cap.c.old Sun Sep 23 16:09:04 2001
+++ login_cap.c Sun Sep 23 16:06:19 2001
@@ -184,18 +184,17 @@
login_cap_t *lc;
if ((lc = malloc(sizeof(login_cap_t))) != NULL) {
- int r, i = 0;
+ int r, me, i = 0;
uid_t euid = 0;
gid_t egid = 0;
const char *msg = NULL;
- const char *dir = (pwd == NULL) ? NULL : pwd->pw_dir;
+ const char *dir;
char userpath[MAXPATHLEN];
static char *login_dbarray[] = { NULL, NULL, NULL };
-#ifndef _FILE_LOGIN_CONF_WORKS
- dir = NULL;
-#endif
+ me = (name != NULL && strcmp(name, LOGIN_MECLASS) == 0);
+ dir = (!me || pwd == NULL) ? NULL : pwd->pw_dir;
/*
* Switch to user mode before checking/reading its ~/.login_conf
* - some NFSes have root read access disabled.
@@ -215,7 +214,7 @@
if (_secure_path(userpath, pwd->pw_uid, pwd->pw_gid) != -1)
i++; /* only use 'secure' data */
}
- if (_secure_path(_PATH_LOGIN_CONF, 0, 0) != -1)
+ if (me && _secure_path(_PATH_LOGIN_CONF, 0, 0) != -1)
login_dbarray[i++] = _PATH_LOGIN_CONF;
login_dbarray[i] = NULL;
@@ -227,7 +226,7 @@
switch (cgetent(&lc->lc_cap, login_dbarray, (char*)name)) {
case -1: /* Failed, entry does not exist */
- if (strcmp(name, LOGIN_MECLASS) == 0)
+ if (me)
break; /* Don't retry default on 'me' */
if (i == 0)
r = -1;
--
Andrey A. Chernov
http://ache.pp.ru/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010923161354.A426>
