Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37905378
en ru br
ALT Linux repositórios
S:1.21.2-alt1
5.0: 1.6.3-alt6.M50.2
4.1: 1.6.3-alt3.M41.4
4.0: 1.5.1-alt4.M40.5
+updates:1.5.1-alt4.M40.5
3.0: 1.4.1-alt1

Group :: Sistema/Bibliotecas
RPM: krb5

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: krb5-1.4-alt-rh-rlogind-environ.patch
Download


--- krb5-1.4.1/src/appl/bsd/krlogind.c.krlogind	2005-04-08 01:17:25 +0400
+++ krb5-1.4.1/src/appl/bsd/krlogind.c	2005-06-04 19:42:21 +0400
@@ -713,6 +713,9 @@
 #else
 	struct sgttyb b;
 #endif /* POSIX_TERMIOS */
+	char environ_term[sizeof(term) + 6], environ_ccname[sizeof(environ_term)];
+	char *bare_environ[] = {environ_term, environ_ccname, NULL};
+
 	if ((retval = pty_open_slave(line, &t))) {
 	    fatal(f, error_message(retval));
 	    exit(1);
@@ -819,11 +822,15 @@
 /* use the vendors login, which has -p and -f. Tested on 
  * AIX 4.1.4 and HPUX 10 
  */
+    memset(environ_term, '\0', sizeof(environ_term));
+    memset(environ_ccname, '\0', sizeof(environ_ccname));
+    if (getenv("KRB5CCNAME") != NULL)
+      snprintf(environ_ccname, sizeof(environ_ccname) - 1, "KRB5CCNAME=%s", getenv("KRB5CCNAME"));
     {
         char *cp;
-        if ((cp = strchr(term,'/')))
+        snprintf(environ_term, sizeof(environ_term) - 1, "TERM=%s", term);
+        if ((cp = strchr(environ_term,'/')))
             *cp = '\0';
-        setenv("TERM",term, 1);
     }
 
     retval = pty_make_sane_hostname((struct sockaddr *) fromp, maxhostlen,
@@ -832,13 +839,13 @@
     if (retval)
         fatalperror(f, "failed make_sane_hostname");
     if (passwd_req)
-        execl(login_program, "login", "-p", "-h", rhost_sane,
-          lusername, (char *)NULL);
+        execle(login_program, "login", "-p", "-h", rhost_sane,
+			   lusername, (char *)NULL, bare_environ);
     else
-        execl(login_program, "login", "-p", "-h", rhost_sane,
-             "-f", lusername, (char *)NULL);
+        execle(login_program, "login", "-p", "-h", rhost_sane,
+			   "-f", lusername, (char *)NULL, bare_environ);
 #else /* USE_LOGIN_F */
-	execl(login_program, "login", "-r", rhost_sane, (char *)NULL);
+	execle(login_program, "login", "-r", rhost_sane, (char *)NULL, bare_environ);
 #endif /* USE_LOGIN_F */
 	syslog(LOG_ERR, "failed exec of %s: %s",
 	       login_program, error_message(errno));
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009