diff -urN xlockmore.orig/Makefile xlockmore/Makefile --- xlockmore.orig/Makefile Tue Dec 13 07:54:13 2005 +++ xlockmore/Makefile Wed Jan 11 13:28:03 2006 @@ -6,8 +6,8 @@ # PORTNAME= xlockmore -PORTVERSION= 5.20.1 -PORTREVISION= 1 +PORTVERSION= 5.21 +PORTREVISION= 0 CATEGORIES?= x11 MASTER_SITES= ftp://ftp.tux.org/pub/tux/bagleyd/xlockmore/ \ http://www.tux.org/~bagleyd/latest/ diff -urN xlockmore.orig/distinfo xlockmore/distinfo --- xlockmore.orig/distinfo Sat Nov 26 07:53:55 2005 +++ xlockmore/distinfo Wed Jan 11 11:54:54 2006 @@ -1,3 +1,3 @@ -MD5 (xlockmore-5.20.1.tar.bz2) = f70b24437d44cfa10ca259d00608deef -SHA256 (xlockmore-5.20.1.tar.bz2) = 772c1da9a125ca9664e3388af447c1dce35c8b370021c1b07dbb9dffd7ba9e41 -SIZE (xlockmore-5.20.1.tar.bz2) = 1768913 +MD5 (xlockmore-5.21.tar.bz2) = eefe878d7efaa982ee53553c78534315 +SHA256 (xlockmore-5.21.tar.bz2) = 1d5978d0577991f4bcff3a569e3b17e328b1588d946a7b4afad3def9cc40bfbd +SIZE (xlockmore-5.21.tar.bz2) = 1794442 diff -urN xlockmore.orig/files/patch-pam-passwd.c xlockmore/files/patch-pam-passwd.c --- xlockmore.orig/files/patch-pam-passwd.c Tue Dec 13 06:18:26 2005 +++ xlockmore/files/patch-pam-passwd.c Thu Jan 1 09:00:00 1970 @@ -1,62 +0,0 @@ ---- ../xlockmore-5.20.1.orig/xlock/passwd.c Mon Sep 26 17:11:20 2005 -+++ xlock/passwd.c Mon Dec 12 15:04:31 2005 -@@ -304,6 +304,16 @@ - reply = (struct pam_response *) malloc(sizeof (struct pam_response) * - num_msg); - -+// reply[] members is not initialized! -+// As a result - abort trap when PAM tries to free reply structure -+// after PAM_ERROR_MSG processing. -+ -+// So I just initialize reply here with default values and drop -+// initialization from code below (if code matches). -+ -+ reply[replies].resp_retcode = PAM_SUCCESS; // be optimistic -+ reply[replies].resp = NULL; -+ - if (!reply) - return PAM_CONV_ERR; - -@@ -325,7 +335,6 @@ - } - else - { -- reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = COPY_STRING(PAM_password); - } - #ifdef DEBUG -@@ -340,11 +349,6 @@ - { - PAM_putText( msg[replies], &reply[replies], False ); - } -- else -- { -- reply[replies].resp_retcode = PAM_SUCCESS; -- reply[replies].resp = NULL; -- } - #ifdef DEBUG - (void) printf( "Back From PAM_putText: PAM_PROMPT_ECHO_ON\n" ); - (void) printf( "Response is: (%s)\n, Return Code is: (%d)\n", -@@ -357,11 +361,7 @@ - { - PAM_putText( msg[replies], &reply[replies], False ); - } -- else -- { -- reply[replies].resp_retcode = PAM_SUCCESS; -- reply[replies].resp = NULL; -- } -+ /* PAM frees resp */ - #ifdef DEBUG - (void) printf( "Back From PAM_putText: PAM_PROMPT_ECHO_ON\n" ); - (void) printf( "Response is: (%s)\n, Return Code is: (%d)\n", -@@ -1205,8 +1205,7 @@ - pam_error = pam_authenticate(pamh, 0); - if (pam_error != PAM_SUCCESS) { - if (!allowroot) { -- pam_end(pamh, 0); -- return False; -+ PAM_BAIL; - } - - /* Try as root; bail if no success there either */ diff -urN xlockmore.orig/files/patch-pam-xlock.c xlockmore/files/patch-pam-xlock.c --- xlockmore.orig/files/patch-pam-xlock.c Tue Dec 13 06:18:26 2005 +++ xlockmore/files/patch-pam-xlock.c Thu Jan 1 09:00:00 1970 @@ -1,17 +0,0 @@ ---- ../xlockmore-5.20.1.orig/xlock/xlock.c Thu Oct 27 04:09:29 2005 -+++ xlock/xlock.c Mon Dec 12 14:56:05 2005 -@@ -3316,7 +3316,14 @@ - #ifdef USE_VTLOCK - if (!vtlock) - #endif -+#ifdef BAD_PAM -+ (void) seteuid(ruid); -+#else - (void) setuid(ruid); -+#endif -+// #ifdef BAD_PAM ... #endif above will be added to prevent xlock from -+// dropping privileges when using PAM modules, that needs root rights -+// (pam_unix e.g.) - - #if 0 - /* synchronize -- so I am aware of errors immediately */