--- Linux-PAM-0.77/modules/pam_console/pam_console_apply.c.console-reset 2003-07-08 05:16:28.000000000 +0200 +++ Linux-PAM-0.77/modules/pam_console/pam_console_apply.c 2003-07-10 22:50:26.000000000 +0200 @@ -41,8 +41,9 @@ va_list args; if (debug_p && !debug) return; va_start(args, format); - fprintf(stderr, format, args); + vfprintf(stderr, format, args); va_end(args); + fprintf(stderr, "\n"); } int --- Linux-PAM-0.77/modules/pam_console/config.y.az 2004-10-31 14:39:41.519539120 +0200 +++ Linux-PAM-0.77/modules/pam_console/config.y 2004-10-31 14:42:44.110781032 +0200 @@ -425,6 +425,8 @@ reset_permissions(pam_handle_t *pamh, const char *consolename, int nonroot_ok) { struct passwd *pwd; struct group *grp; + uid_t pw_uid; + gid_t gr_gid; config *c; GSList *cl; @@ -439,20 +441,24 @@ if (pwd == NULL) { _pam_log(LOG_ERR, FALSE, "getpwnam failed for %s", c->revert_owner ? c->revert_owner : "root"); - return -1; + pw_uid = 0; + } else { + pw_uid = pwd->pw_uid; } grp = _pammodutil_getgrnam(pamh, c->revert_group ? c->revert_group : "root"); if (grp == NULL) { _pam_log(LOG_ERR, FALSE, "getgrnam failed for %s", c->revert_group ? c->revert_group : "root"); - return -1; - } + gr_gid = 0; + } else { + gr_gid = pwd->pw_uid; + } if (c->device_class->list) chmod_files(c->revert_mode ? c->revert_mode : "0600", - pwd->pw_uid, grp->gr_gid, NULL, c->device_class->list); + pw_uid, gr_gid, NULL, c->device_class->list); else chmod_files(c->revert_mode ? c->revert_mode : "0600", - pwd->pw_uid, grp->gr_gid, c->device_class->name, NULL); + pw_uid, gr_gid, c->device_class->name, NULL); } } return 0;