diff options
author | imp <imp@FreeBSD.org> | 1997-03-24 06:15:07 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 1997-03-24 06:15:07 +0000 |
commit | 6b885ecb71f8782d8ebec25b7e57b7e7436c8c97 (patch) | |
tree | eeb89b9213c159acf536b24b9df0d860ff465f28 /lib/libc/nls | |
parent | ff12c038efa6945b2598bb5f2d145ba82d294aca (diff) | |
download | FreeBSD-src-6b885ecb71f8782d8ebec25b7e57b7e7436c8c97.zip FreeBSD-src-6b885ecb71f8782d8ebec25b7e57b7e7436c8c97.tar.gz |
Don't honor LANG or NLSPATH if we're setuid/setgid.
Fixes PR 2582
Submitted by: Julian Assange
Diffstat (limited to 'lib/libc/nls')
-rw-r--r-- | lib/libc/nls/msgcat.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/libc/nls/msgcat.c b/lib/libc/nls/msgcat.c index 6ac3a3b..9af5b49 100644 --- a/lib/libc/nls/msgcat.c +++ b/lib/libc/nls/msgcat.c @@ -1,4 +1,4 @@ -/* $Id$ */ +/* $Id: msgcat.c,v 1.7 1997/02/22 15:00:50 peter Exp $ */ /*********************************************************** Copyright 1990, by Alfalfa Software Incorporated, Cambridge, Massachusetts. @@ -99,8 +99,13 @@ int type; catpath = name; if (stat(catpath, &sbuf)) return(0); } else { - if ((lang = (char *) getenv("LANG")) == NULL) lang = "C"; - if ((nlspath = (char *) getenv("NLSPATH")) == NULL) { + /* XXX Should really be issetguid(), but we don't have that */ + if ((lang = (char *) getenv("LANG")) == NULL || + getuid() != geteuid() || getgid() != getegid()) + lang = "C"; + /* XXX Should really be issetguid(), but we don't have that */ + if ((nlspath = (char *) getenv("NLSPATH")) == NULL || + getuid() != geteuid() || getgid() != getegid()) { nlspath = "/usr/share/nls/%L/%N.cat:/usr/share/nls/%N/%L:/usr/local/share/nls/%L/%N.cat:/usr/local/share/nls/%N/%L"; } |