File slim-1.3.2-pam.patch of Package slim

diff -uNr old-slim-1.3.2//app.cpp slim-1.3.2/app.cpp
--- old-slim-1.3.2//app.cpp	2010-07-29 11:27:21.639313142 +0200
+++ slim-1.3.2/app.cpp	2010-07-29 11:28:43.671310744 +0200
@@ -43,8 +43,8 @@
     Panel* panel = *static_cast<Panel**>(appdata_ptr);
     int result = PAM_SUCCESS;
     for (int i=0; i<num_msg; i++){
-        resp[i]->resp=0;
-        resp[i]->resp_retcode=0;
+        (*resp)[i].resp=0;
+        (*resp)[i].resp_retcode=0;
         switch(msg[i]->msg_style){
             case PAM_PROMPT_ECHO_ON:
                 // We assume PAM is asking for the username
@@ -53,13 +53,13 @@
                     case Panel::Suspend:
                     case Panel::Halt:
                     case Panel::Reboot:
-                        resp[i]->resp=strdup("root");
+                        (*resp)[i].resp=strdup("root");
                         break;
 
                     case Panel::Console:
                     case Panel::Exit:
                     case Panel::Login:
-                        resp[i]->resp=strdup(panel->GetName().c_str());
+                        (*resp)[i].resp=strdup(panel->GetName().c_str());
                         break;
                 }
                 break;
@@ -75,7 +75,7 @@
 
                     default:
                         panel->EventHandler(Panel::Get_Passwd);
-                        resp[i]->resp=strdup(panel->GetPasswd().c_str());
+                        (*resp)[i].resp=strdup(panel->GetPasswd().c_str());
                         break;
                 }
                 break;
@@ -91,9 +91,9 @@
     }
     if (result!=PAM_SUCCESS){
         for (int i=0; i<num_msg; i++){
-            if (resp[i]->resp==0) continue;
-            free(resp[i]->resp);
-            resp[i]->resp=0;
+            if ((*resp)[i].resp==0) continue;
+            free((*resp)[i].resp);
+            (*resp)[i].resp=0;
         };
         free(*resp);
         *resp=0;
diff -uNr old-slim-1.3.2//PAM.cpp slim-1.3.2/PAM.cpp
--- old-slim-1.3.2//PAM.cpp	2010-07-29 11:27:21.637314292 +0200
+++ slim-1.3.2/PAM.cpp	2010-07-29 11:28:43.609314041 +0200
@@ -158,7 +158,7 @@
     }
 
     void Authenticator::open_session(void){
-        switch((last_result=pam_setcred(pam_handle, PAM_ESTABLISH_CRED))){
+        switch((last_result=pam_setcred(pam_handle, PAM_REINITIALIZE_CRED))){
             default:
             case PAM_CRED_ERR:
             case PAM_CRED_UNAVAIL:
openSUSE Build Service is sponsored by