diff -ru pam_keyring-0.0.8.orig/src/compat.c pam_keyring-0.0.8/src/compat.c --- pam_keyring-0.0.8.orig/src/compat.c 2006-06-02 13:04:37.000000000 -0400 +++ pam_keyring-0.0.8/src/compat.c 2006-10-02 00:03:20.000000000 -0400 @@ -37,15 +37,15 @@ if (!msgbuf) { syslog (LOG_AUTHPRIV|LOG_CRIT, "%s: vasprintf: %m", "pam_keyring"); - closelog(); - return; - } - - syslog (LOG_AUTHPRIV|priority, "%s: %s: %s", + } else { + syslog (LOG_AUTHPRIV|priority, "%s: %s: %s", "pam_keyring", service, msgbuf); + free(msgbuf); // _pam_overwrite(msgbuf); + } closelog(); + } /* @@ -53,7 +53,7 @@ * response. */ int -pam_prompt(pam_handle_t *pamh, int style, const char *prompt, char **user_msg) +pam_prompt(pam_handle_t *pamh, int style, char **user_msg, const char *prompt) { int retval; const void *item; diff -ru pam_keyring-0.0.8.orig/src/compat.h pam_keyring-0.0.8/src/compat.h --- pam_keyring-0.0.8.orig/src/compat.h 2006-06-01 13:15:38.000000000 -0400 +++ pam_keyring-0.0.8/src/compat.h 2006-10-01 23:56:46.000000000 -0400 @@ -6,6 +6,6 @@ extern int PAM_FORMAT((printf, 4, 5)) PAM_NONNULL((1,4)) pam_prompt (pam_handle_t *pamh, int style, char **response, - const char *fmt, ...); + const char *prompt); #endif diff -ru pam_keyring-0.0.8.orig/src/pam_keyring.c pam_keyring-0.0.8/src/pam_keyring.c --- pam_keyring-0.0.8.orig/src/pam_keyring.c 2006-06-05 11:36:17.000000000 -0400 +++ pam_keyring-0.0.8/src/pam_keyring.c 2006-10-02 00:38:17.000000000 -0400 @@ -285,7 +285,7 @@ g_error_free(err); goto _return; } - if (WIFEXITED(status) == 0 && standard_out != NULL) { + if (WIFEXITED(status) && standard_out != NULL) { lines = g_strsplit(standard_out, "\n", 3); if (lines[0] != NULL && lines[1] != NULL &&