doc/share/security/patches/SA-02:07/k5su.patch
Bjoern A. Zeeb 3571e53040 Import FreeBSD Security Advisories and Errata Notices, as well as their
patches for easier mirroring, to eliminate a special copy, to make
www.freebsd.org/security a full copy of security.freebsd.org and be
eventually be the same.

For now files are just sitting there.   The symlinks are missing.

Discussed on:	www (repository location)
Discussed with:	simon (so)
2012-08-15 06:19:40 +00:00

48 lines
1.3 KiB
Diff

Index: crypto/heimdal/appl/su/su.c
diff -u crypto/heimdal/appl/su/su.c:1.1.1.3 crypto/heimdal/appl/su/su.c:1.1.1.4
--- crypto/heimdal/appl/su/su.c:1.1.1.3 Wed Jun 20 22:09:39 2001
+++ crypto/heimdal/appl/su/su.c Tue Jan 15 14:25:55 2002
@@ -138,7 +138,11 @@
#ifdef KRB5
krb5_error_code ret;
krb5_principal p;
+ char *login_name = NULL;
+#if defined(HAVE_GETLOGIN) && !defined(POSIX_GETLOGIN)
+ login_name = getlogin();
+#endif
ret = krb5_init_context (&context);
if (ret) {
#if 0
@@ -147,9 +151,11 @@
return 1;
}
+ if (login_name == NULL || strcmp (login_name, "root") == 0)
+ login_name = login_info->pw_name;
if (strcmp (su_info->pw_name, "root") == 0)
ret = krb5_make_principal(context, &p, NULL,
- login_info->pw_name,
+ login_name,
kerberos_instance,
NULL);
else
@@ -268,7 +274,6 @@
int i, optind = 0;
char *su_user;
struct passwd *su_info;
- char *login_user = NULL;
struct passwd *login_info;
struct passwd *pwd;
@@ -309,10 +314,6 @@
}
su_info = make_info(pwd);
-#if defined(HAVE_GETLOGIN) && !defined(POSIX_GETLOGIN)
- login_user = getlogin();
-#endif
- if(login_user == NULL || (pwd = getpwnam(login_user)) == NULL)
pwd = getpwuid(getuid());
if(pwd == NULL)
errx(1, "who are you?");