diff --git a/pam.changes b/pam.changes index f4661e0..262e452 100644 --- a/pam.changes +++ b/pam.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Nov 19 11:13:31 CET 2008 - kukuk@suse.de + +- pam_xauth: update last patch +- pam_pwhistory: add missing type option + ------------------------------------------------------------------- Tue Nov 4 13:42:03 CET 2008 - mc@suse.de diff --git a/pam.spec b/pam.spec index a3b1dcc..0674874 100644 --- a/pam.spec +++ b/pam.spec @@ -35,7 +35,7 @@ License: BSD 3-Clause; GPL v2 or later Group: System/Libraries AutoReqProv: on Version: 1.0.2 -Release: 11 +Release: 12 Summary: A Security Tool that Provides Authentication for Applications Source: Linux-PAM-%{version}.tar.bz2 Source1: Linux-PAM-%{version}-SUSE-docs.tar.bz2 @@ -61,6 +61,7 @@ Patch10: pam_lastlog.diff Patch11: pam_tally2.diff Patch12: pam_cracklib-no-pwhistory.diff Patch13: pam_xauth-XAUTHLOCALHOSTNAME.diff +Patch14: pam_pwhistory-type.diff %description PAM (Pluggable Authentication Modules) is a system security tool that @@ -118,6 +119,7 @@ chmod 755 modules/pam_pwhistory/tst-pam_pwhistory chmod 755 modules/pam_tally2/tst-pam_tally2 %patch12 -p0 %patch13 -p0 +%patch14 -p0 %build aclocal -I m4 --install --force @@ -326,6 +328,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libpam_misc.so %changelog +* Wed Nov 19 2008 kukuk@suse.de +- pam_xauth: update last patch +- pam_pwhistory: add missing type option * Tue Nov 04 2008 mc@suse.de - pam_xauth: put XAUTHLOCALHOSTNAME into new enviroment (bnc#441314) diff --git a/pam_pwhistory-type.diff b/pam_pwhistory-type.diff new file mode 100644 index 0000000..0fe7a01 --- /dev/null +++ b/pam_pwhistory-type.diff @@ -0,0 +1,102 @@ +Index: modules/pam_pwhistory/pam_pwhistory.8.xml +=================================================================== +RCS file: /cvsroot/pam/Linux-PAM/modules/pam_pwhistory/pam_pwhistory.8.xml,v +retrieving revision 1.1 +diff -u -r1.1 pam_pwhistory.8.xml +--- modules/pam_pwhistory/pam_pwhistory.8.xml 10 Oct 2008 06:53:45 -0000 1.1 ++++ modules/pam_pwhistory/pam_pwhistory.8.xml 19 Nov 2008 14:24:00 -0000 +@@ -33,6 +33,9 @@ + + retry=N + ++ ++ type=STRING ++ + + + +@@ -119,6 +122,21 @@ + + + ++ ++ ++ ++ ++ ++ ++ The default action is for the module to use the ++ following prompts when requesting passwords: ++ "New UNIX password: " and "Retype UNIX password: ". ++ The default word UNIX can ++ be replaced with this option. ++ ++ ++ ++ + + + +Index: modules/pam_pwhistory/pam_pwhistory.c +=================================================================== +RCS file: /cvsroot/pam/Linux-PAM/modules/pam_pwhistory/pam_pwhistory.c,v +retrieving revision 1.1 +diff -u -r1.1 pam_pwhistory.c +--- modules/pam_pwhistory/pam_pwhistory.c 10 Oct 2008 06:53:45 -0000 1.1 ++++ modules/pam_pwhistory/pam_pwhistory.c 19 Nov 2008 14:24:00 -0000 +@@ -58,7 +58,9 @@ + + #include "opasswd.h" + ++/* For Translators: "%s%s" could be replaced with " " or "". */ + #define NEW_PASSWORD_PROMPT _("New %s%spassword: ") ++/* For Translators: "%s%s" could be replaced with " " or "". */ + #define AGAIN_PASSWORD_PROMPT _("Retype new %s%spassword: ") + #define MISTYPED_PASSWORD _("Sorry, passwords do not match.") + +@@ -70,6 +72,7 @@ + int enforce_for_root; + int remember; + int tries; ++ const char *prompt_type; + }; + typedef struct options_t options_t; + +@@ -101,6 +104,8 @@ + } + else if (strcasecmp (argv, "enforce_for_root") == 0) + options->enforce_for_root = 1; ++ else if (strncasecmp (argv, "type=", 5) == 0) ++ options->prompt_type = &argv[5]; + else + pam_syslog (pamh, LOG_ERR, "pam_pwhistory: unknown option: %s", argv); + } +@@ -121,6 +126,7 @@ + /* Set some default values, which could be overwritten later. */ + options.remember = 10; + options.tries = 1; ++ options.prompt_type = "UNIX"; + + /* Parse parameters for module */ + for ( ; argc-- > 0; argv++) +@@ -209,7 +215,8 @@ + while ((newpass == NULL) && (tries++ < options.tries)) + { + retval = pam_prompt (pamh, PAM_PROMPT_ECHO_OFF, &newpass, +- NEW_PASSWORD_PROMPT, "UNIX", " "); ++ NEW_PASSWORD_PROMPT, options.prompt_type, ++ strlen (options.prompt_type) > 0?" ":""); + if (retval != PAM_SUCCESS) + { + _pam_drop (newpass); +@@ -249,7 +256,9 @@ + char *new2; + + retval = pam_prompt (pamh, PAM_PROMPT_ECHO_OFF, &new2, +- AGAIN_PASSWORD_PROMPT, "UNIX", " "); ++ AGAIN_PASSWORD_PROMPT, ++ options.prompt_type, ++ strlen (options.prompt_type) > 0?" ":""); + if (retval != PAM_SUCCESS) + return retval; + diff --git a/pam_xauth-XAUTHLOCALHOSTNAME.diff b/pam_xauth-XAUTHLOCALHOSTNAME.diff index c12ac41..42a71c8 100644 --- a/pam_xauth-XAUTHLOCALHOSTNAME.diff +++ b/pam_xauth-XAUTHLOCALHOSTNAME.diff @@ -1,32 +1,54 @@ ---- modules/pam_xauth/pam_xauth.c -+++ modules/pam_xauth/pam_xauth.c 2008/11/04 10:59:23 -@@ -600,6 +600,29 @@ +--- modules/pam_xauth/pam_xauth.c 8 Apr 2008 07:01:41 -0000 1.16 ++++ modules/pam_xauth/pam_xauth.c 18 Nov 2008 12:30:58 -0000 +@@ -280,7 +280,7 @@ + return noent_code; + default: + if (debug) { +- pam_syslog(pamh, LOG_ERR, ++ pam_syslog(pamh, LOG_DEBUG, + "error opening %s: %m", path); + } + return PAM_PERM_DENIED; +@@ -293,7 +293,8 @@ + int argc, const char **argv) + { + char *cookiefile = NULL, *xauthority = NULL, +- *cookie = NULL, *display = NULL, *tmp = NULL; ++ *cookie = NULL, *display = NULL, *tmp = NULL, ++ *xauthlocalhostname = NULL; + const char *user, *xauth = NULL; + struct passwd *tpwd, *rpwd; + int fd, i, debug = 0; +@@ -588,14 +589,30 @@ + + if (asprintf(&d, "DISPLAY=%s", display) < 0) + { +- pam_syslog(pamh, LOG_DEBUG, "out of memory"); ++ pam_syslog(pamh, LOG_ERR, "out of memory"); + cookiefile = NULL; + retval = PAM_SESSION_ERR; + goto cleanup; + } + + if (pam_putenv (pamh, d) != PAM_SUCCESS) +- pam_syslog (pamh, LOG_DEBUG, ++ pam_syslog (pamh, LOG_ERR, ++ "can't set environment variable '%s'", d); ++ free (d); ++ } ++ ++ /* set XAUTHLOCALHOSTNAME to make sure that su - work under gnome */ ++ if ((xauthlocalhostname = getenv("XAUTHLOCALHOSTNAME")) != NULL) { ++ char *d; ++ ++ if (asprintf(&d, "XAUTHLOCALHOSTNAME=%s", xauthlocalhostname) < 0) { ++ pam_syslog(pamh, LOG_ERR, "out of memory"); ++ retval = PAM_SESSION_ERR; ++ goto cleanup; ++ } ++ ++ if (pam_putenv (pamh, d) != PAM_SUCCESS) ++ pam_syslog (pamh, LOG_ERR, + "can't set environment variable '%s'", d); free (d); } - -+ /* set XAUTHLOCALHOSTNAME to make sure that su - work under gnome */ -+ if (getenv("XAUTHLOCALHOSTNAME") != NULL) { -+ char *d, *xauthlocalhostname; -+ -+ xauthlocalhostname = strdup(getenv("XAUTHLOCALHOSTNAME")); -+ -+ if (asprintf(&d, "XAUTHLOCALHOSTNAME=%s", xauthlocalhostname) < 0) -+ { -+ pam_syslog(pamh, LOG_DEBUG, "out of memory"); -+ free(xauthlocalhostname); -+ xauthlocalhostname = NULL; -+ retval = PAM_SESSION_ERR; -+ goto cleanup; -+ } -+ -+ if (pam_putenv (pamh, d) != PAM_SUCCESS) -+ pam_syslog (pamh, LOG_DEBUG, -+ "can't set environment variable '%s'", d); -+ free (d); -+ free(xauthlocalhostname); -+ xauthlocalhostname = NULL; -+ } -+ - /* Merge the cookie we read before into the new file. */ - if (debug) { - pam_syslog(pamh, LOG_DEBUG,