source:
trunk/patches/pam_pbssimpleauth_4_X.patch
@
61
Last change on this file since 61 was 61, checked in by bas, 12 years ago | |
---|---|
File size: 3.9 KB |
-
src/pam/pam_pbssimpleauth.c
36 36 #define PAM_SM_AUTH 37 37 #define PAM_SM_ACCOUNT 38 38 39 /* 40 * HVB: add for pam_syslog 41 */ 42 #include <security/pam_ext.h> 43 39 44 #ifdef HAVE_SECURITY_PAM_APPL_H 40 45 #include <security/pam_appl.h> 41 46 #endif … … 77 82 char jobdirpath[PATH_MAX+1]; 78 83 int debug = 0; 79 84 80 openlog(MODNAME, LOG_PID, LOG_USER);81 85 strcpy(jobdirpath, PBS_SERVER_HOME "/mom_priv/jobs"); 82 86 83 87 /* step through arguments */ … … 89 93 else if (!strcmp(*argv, "jobdir")) 90 94 strncpy(jobdirpath, *argv, PATH_MAX); 91 95 else 92 syslog(LOG_ERR, "unknown option: %s", *argv);96 pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv); 93 97 } 94 98 95 if (debug) syslog(LOG_INFO, "opening %s", jobdirpath);99 if (debug) pam_syslog(pamh, LOG_INFO, "opening %s", jobdirpath); 96 100 97 101 if ((jobdir = opendir(jobdirpath)) == NULL) 98 102 { 99 if (debug) syslog(LOG_INFO, "failed to open jobs dir: %s", strerror(errno));103 if (debug) pam_syslog(pamh, LOG_INFO, "failed to open jobs dir: %s", strerror(errno)); 100 104 101 closelog();102 105 103 106 return PAM_IGNORE; 104 107 } … … 109 112 #if defined(PAM_CONV_AGAIN) && defined(PAM_INCOMPLETE) 110 113 if (retval == PAM_CONV_AGAIN) 111 114 { 112 closelog();113 115 return PAM_INCOMPLETE; 114 116 } 115 117 … … 117 119 118 120 if ((retval != PAM_SUCCESS) || !username) 119 121 { 120 syslog(LOG_ERR, "failed to retrieve username"); 121 closelog(); 122 pam_syslog(pamh, LOG_ERR, "failed to retrieve username"); 122 123 return PAM_SERVICE_ERR; 123 124 } 124 125 … … 126 127 127 128 /* no early returns from this point on because we need to free ubuf */ 128 129 129 if (debug) syslog(LOG_INFO, "username %s, %s", username, user_pwd ? "known" : "unknown");130 if (debug) pam_syslog(pamh, LOG_INFO, "username %s, %s", username, user_pwd ? "known" : "unknown"); 130 131 131 132 if (!user_pwd) 132 133 { … … 134 135 } 135 136 else if (user_pwd->pw_uid == 0) 136 137 { 137 if (debug) syslog(LOG_INFO, "allowing uid 0");138 if (debug) pam_syslog(pamh, LOG_INFO, "allowing uid 0"); 138 139 139 140 retval = PAM_SUCCESS; 140 141 } … … 149 150 150 151 snprintf(jobpath, PATH_MAX - 1, "%s/%s", jobdirpath, jdent->d_name); 151 152 152 if (debug) syslog(LOG_INFO, "opening %s", jobpath);153 if (debug) pam_syslog(pamh, LOG_INFO, "opening %s", jobpath); 153 154 154 155 fp = open(jobpath, O_RDONLY, 0); 155 156 156 157 if (fp < 0) 157 158 { 158 syslog(LOG_ERR, "error opening job file");159 pam_syslog(pamh, LOG_ERR, "error opening job file"); 159 160 continue; 160 161 } 161 162 … … 164 165 if (amt != sizeof(xjob.ji_qs)) 165 166 { 166 167 close(fp); 167 syslog(LOG_ERR, "short read of job file");168 pam_syslog(pamh, LOG_ERR, "short read of job file"); 168 169 continue; 169 170 } 170 171 … … 172 173 { 173 174 /* odd, this really should be JOB_UNION_TYPE_MOM */ 174 175 close(fp); 175 syslog(LOG_ERR, "job file corrupt");176 pam_syslog(pamh, LOG_ERR, "job file corrupt"); 176 177 continue; 177 178 } 178 179 179 if (debug) syslog(LOG_INFO, "state=%d, substate=%d", xjob.ji_qs.ji_state, xjob.ji_qs.ji_substate);180 if (debug) pam_syslog(pamh, LOG_INFO, "state=%d, substate=%d", xjob.ji_qs.ji_state, xjob.ji_qs.ji_substate); 180 181 181 182 if ((xjob.ji_qs.ji_un.ji_momt.ji_exuid == user_pwd->pw_uid) && 182 183 ((xjob.ji_qs.ji_substate == JOB_SUBSTATE_PRERUN) || … … 186 187 /* success! */ 187 188 close(fp); 188 189 189 if (debug) syslog(LOG_INFO, "allowed by %s", jdent->d_name);190 if (debug) pam_syslog(pamh, LOG_INFO, "allowed by %s", jdent->d_name); 190 191 191 192 retval = PAM_SUCCESS; 192 193 … … 203 204 if (ubuf) 204 205 free(ubuf); 205 206 206 if (debug) syslog(LOG_INFO, "returning %s", retval == PAM_SUCCESS ? "success" : "failed");207 if (debug) pam_syslog(pamh, LOG_INFO, "returning %s", retval == PAM_SUCCESS ? "success" : "failed"); 207 208 208 closelog();209 209 210 210 return retval; 211 211 }
Note: See TracBrowser
for help on using the repository browser.