--- xscreensaver-5.00/config.h.in.rootpasswd 2006-05-18 08:36:52.000000000 +0900
+++ xscreensaver-5.00/config.h.in 2006-05-31 00:09:40.000000000 +0900
@@ -398,6 +398,11 @@
/* Define this to remove the option of locking the screen at all. */
#undef NO_LOCKING
+/* Define this if allowing root passwd to unlock screen
+ Default is YES!!
+*/
+#undef ALLOW_ROOT_PASSWD
+
/* This is the same as GETTEXT_PACKAGE, but for the glade generated code. */
#undef PACKAGE
--- xscreensaver-5.00/configure.in.rootpasswd 2006-05-24 07:07:00.000000000 +0900
+++ xscreensaver-5.00/configure.in 2006-05-31 00:31:29.000000000 +0900
@@ -1793,6 +1793,23 @@
###############################################################################
#
+# Whether to allow root password to unblank.
+#
+###############################################################################
+AC_ARG_ENABLE(root-passwd, [
+ --enable-root-passwd Allow root passwd to unlock screen.
+ --disable-root-passwd Do not allow that.],
+ [enable_root_passwd="$enableval"],[enable_root_passwd=yes])
+if test "$enable_root_passwd" = yes; then
+ AC_DEFINE(ALLOW_ROOT_PASSWD)
+ true
+elif test "$enable_root_passwd" != no; then
+ echo "error: something wrong with root-passwd option. Check configure.in ."
+ exit 1
+fi
+
+###############################################################################
+#
# Check for PAM.
#
###############################################################################
--- xscreensaver-5.00/driver/passwd-pam.c.rootpasswd 2006-05-17 11:14:58.000000000 +0900
+++ xscreensaver-5.00/driver/passwd-pam.c 2006-05-31 00:09:40.000000000 +0900
@@ -288,6 +288,7 @@
goto DONE;
}
+#ifdef ALLOW_ROOT_PASSWD
/* If that didn't work, set the user to root, and try to authenticate again.
*/
if (user) free (user);
@@ -300,6 +301,7 @@
if (status != PAM_SUCCESS) goto DONE;
PAM_NO_DELAY(pamh);
+#endif
set = block_sigchld();
status = pam_authenticate (pamh, 0);