File at-3.1.13-pam-session-as-root.patch of Package at

Index: atd.c
===================================================================
--- atd.c.orig
+++ atd.c
@@ -663,15 +663,17 @@ run_file(const char *filename, uid_t uid
     if (unlink(filename) == -1)
         syslog(LOG_WARNING, "Warning: removing output file for job %li failed: %s",
                 jobno, strerror(errno));
 
 #ifdef  WITH_PAM
+    PRIV_START
     pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT );
     pam_close_session(pamh, PAM_SILENT);
     pam_end(pamh, PAM_ABORT);
     closelog();
     openlog("atd", LOG_PID, LOG_ATD);
+    PRIV_END
 #endif
 
     /* The job is now finished.  We can delete its input file.
      */
     chdir(ATJOB_DIR);
@@ -784,15 +786,17 @@ run_file(const char *filename, uid_t uid
 	  {
 	    /* Parent */
 	    waitpid(mail_pid, (int *) NULL, 0);
 	  }
 #ifdef WITH_PAM
+	PRIV_START
 	pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT );
 	pam_close_session(pamh, PAM_SILENT);
 	pam_end(pamh, PAM_ABORT);
 	closelog();
 	openlog("atd", LOG_PID, LOG_ATD);
+	PRIV_END
 #endif
     }
     exit(EXIT_SUCCESS);
 }
 
openSUSE Build Service is sponsored by