source:
trunk/patches/pam_pbssimpleauth.patch
@
28
Last change on this file since 28 was 28, checked in by bas, 15 years ago | |
---|---|
File size: 3.8 KB |
-
src/pam/pam_pbssimpleauth.c
73 73 char jobdirpath[PATH_MAX+1]; 74 74 int debug=0; 75 75 76 openlog(MODNAME,LOG_PID,LOG_USER);77 76 strcpy(jobdirpath,PBS_SERVER_HOME "/mom_priv/jobs"); 78 77 79 78 /* step through arguments */ … … 84 83 else if (!strcmp(*argv,"jobdir")) 85 84 strncpy(jobdirpath,*argv,PATH_MAX); 86 85 else 87 syslog(LOG_ERR,"unknown option: %s",*argv);86 pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv); 88 87 } 89 88 90 if (debug) syslog(LOG_INFO,"opening %s",jobdirpath); 89 if (debug) 90 pam_syslog(pamh, LOG_INFO, "opening %s", jobdirpath); 91 91 92 92 if ((jobdir = opendir(jobdirpath)) == NULL) 93 93 { 94 if (debug) syslog(LOG_INFO,"failed to open jobs dir: %s",strerror(errno)); 95 closelog(); 94 if (debug) 95 pam_syslog(pamh, LOG_INFO, "failed to open jobs dir: %s", strerror(errno)); 96 96 97 return PAM_IGNORE; 97 98 } 98 99 … … 102 103 #if defined(PAM_CONV_AGAIN) && defined(PAM_INCOMPLETE) 103 104 if (retval == PAM_CONV_AGAIN) 104 105 { 106 /* HvB 105 107 closelog(); 108 */ 106 109 return PAM_INCOMPLETE; 107 110 } 108 111 #endif 109 112 110 113 if ((retval != PAM_SUCCESS) || !username) 111 114 { 112 syslog(LOG_ERR,"failed to retrieve username"); 113 closelog(); 115 pam_syslog(pamh, LOG_ERR, "failed to retrieve username"); 114 116 return PAM_SERVICE_ERR; 115 117 } 116 118 … … 118 120 119 121 /* no early returns from this point on because we need to free ubuf */ 120 122 121 if (debug) syslog(LOG_INFO,"username %s, %s",username,user_pwd ? "known" : "unknown"); 123 if (debug) 124 pam_syslog(pamh, LOG_INFO, "username %s, %s", username, user_pwd ? "known" : "unknown"); 122 125 123 126 if (!user_pwd) 124 127 { … … 126 129 } 127 130 else if (user_pwd->pw_uid == 0) 128 131 { 129 if (debug) syslog(LOG_INFO,"allowing uid 0"); 132 if (debug) 133 pam_syslog(pamh, LOG_INFO, "allowing uid 0"); 134 130 135 retval = PAM_SUCCESS; 131 136 } 132 137 else … … 139 144 continue; 140 145 141 146 snprintf(jobpath,PATH_MAX-1,"%s/%s",jobdirpath,jdent->d_name); 142 if (debug) syslog(LOG_INFO,"opening %s",jobpath); 147 if (debug) 148 pam_syslog(pamh, LOG_INFO, "opening %s", jobpath); 143 149 144 150 fp = open(jobpath, O_RDONLY, 0); 145 151 if (fp < 0) 146 152 { 147 syslog(LOG_ERR,"error opening job file");153 pam_syslog(pamh, LOG_ERR, "error opening job file"); 148 154 continue; 149 155 } 150 156 … … 152 158 if (amt != sizeof(xjob.ji_qs)) 153 159 { 154 160 close(fp); 155 syslog(LOG_ERR,"short read of job file");161 pam_syslog(pamh, LOG_ERR, "short read of job file"); 156 162 continue; 157 163 } 158 164 … … 160 166 { 161 167 /* odd, this really should be JOB_UNION_TYPE_MOM */ 162 168 close(fp); 163 syslog(LOG_ERR,"job file corrupt"); 169 pam_syslog(pamh, LOG_ERR, "job file corrupt"); 170 164 171 continue; 165 172 } 166 173 167 if (debug) syslog(LOG_INFO,"state=%d, substate=%d",xjob.ji_qs.ji_state,xjob.ji_qs.ji_substate); 174 if (debug) 175 pam_syslog(pamh, LOG_INFO, "state=%d, substate=%d", xjob.ji_qs.ji_state,xjob.ji_qs.ji_substate); 168 176 169 177 if ((xjob.ji_qs.ji_un.ji_momt.ji_exuid == user_pwd->pw_uid) && 170 178 ((xjob.ji_qs.ji_substate == JOB_SUBSTATE_PRERUN) || … … 173 181 { 174 182 /* success! */ 175 183 close(fp); 176 if (debug) syslog(LOG_INFO,"allowed by %s",jdent->d_name); 184 if (debug) 185 pam_syslog(pamh, LOG_INFO, "allowed by %s", jdent->d_name); 186 177 187 retval = PAM_SUCCESS; 178 188 break; 179 189 } … … 188 198 if (ubuf) 189 199 free(ubuf); 190 200 191 if (debug) syslog(LOG_INFO,"returning %s",retval==PAM_SUCCESS ? "success" : "failed"); 201 if (debug) 202 pam_syslog(pamh, LOG_INFO, "returning %s", retval==PAM_SUCCESS ? "success" : "failed"); 192 203 193 closelog();194 195 204 return retval; 196 205 } 197 206
Note: See TracBrowser
for help on using the repository browser.