source: branches/2.4/patches/2.4/pam_pbssimpleauth.patch @ 82

Last change on this file since 82 was 33, checked in by bas, 14 years ago

add pam_pbssimpleauth.patch for torque version 2.4

File size: 3.9 KB
  • src/pam/pam_pbssimpleauth.c

    old new  
    3535#define PAM_SM_AUTH
    3636#define PAM_SM_ACCOUNT
    3737
     38/*
     39 * HVB: add for pam_syslog
     40*/
     41#include <security/pam_ext.h>
     42
    3843#ifdef HAVE_SECURITY_PAM_APPL_H
    3944#include <security/pam_appl.h>
    4045#endif
     
    7681  char jobdirpath[PATH_MAX+1];
    7782  int debug = 0;
    7883
    79   openlog(MODNAME, LOG_PID, LOG_USER);
    8084  strcpy(jobdirpath, PBS_SERVER_HOME "/mom_priv/jobs");
    8185
    8286  /* step through arguments */
     
    8892    else if (!strcmp(*argv, "jobdir"))
    8993      strncpy(jobdirpath, *argv, PATH_MAX);
    9094    else
    91       syslog(LOG_ERR, "unknown option: %s", *argv);
     95      pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv);
    9296    }
    9397
    94   if (debug) syslog(LOG_INFO, "opening %s", jobdirpath);
     98  if (debug) pam_syslog(pamh, LOG_INFO, "opening %s", jobdirpath);
    9599
    96100  if ((jobdir = opendir(jobdirpath)) == NULL)
    97101    {
    98     if (debug) syslog(LOG_INFO, "failed to open jobs dir: %s", strerror(errno));
     102    if (debug) pam_syslog(pamh, LOG_INFO, "failed to open jobs dir: %s", strerror(errno));
    99103
    100     closelog();
    101104
    102105    return PAM_IGNORE;
    103106    }
     
    108111#if defined(PAM_CONV_AGAIN) && defined(PAM_INCOMPLETE)
    109112  if (retval == PAM_CONV_AGAIN)
    110113    {
    111     closelog();
    112114    return PAM_INCOMPLETE;
    113115    }
    114116
     
    116118
    117119  if ((retval != PAM_SUCCESS) || !username)
    118120    {
    119     syslog(LOG_ERR, "failed to retrieve username");
    120     closelog();
     121    pam_syslog(pamh, LOG_ERR, "failed to retrieve username");
    121122    return PAM_SERVICE_ERR;
    122123    }
    123124
     
    125126
    126127  /* no early returns from this point on because we need to free ubuf */
    127128
    128   if (debug) syslog(LOG_INFO, "username %s, %s", username, user_pwd ? "known" : "unknown");
     129  if (debug) pam_syslog(pamh, LOG_INFO, "username %s, %s", username, user_pwd ? "known" : "unknown");
    129130
    130131  if (!user_pwd)
    131132    {
     
    133134    }
    134135  else if (user_pwd->pw_uid == 0)
    135136    {
    136     if (debug) syslog(LOG_INFO, "allowing uid 0");
     137    if (debug) pam_syslog(pamh, LOG_INFO, "allowing uid 0");
    137138
    138139    retval = PAM_SUCCESS;
    139140    }
     
    148149
    149150      snprintf(jobpath, PATH_MAX - 1, "%s/%s", jobdirpath, jdent->d_name);
    150151
    151       if (debug) syslog(LOG_INFO, "opening %s", jobpath);
     152      if (debug) pam_syslog(pamh, LOG_INFO, "opening %s", jobpath);
    152153
    153154      fp = open(jobpath, O_RDONLY, 0);
    154155
    155156      if (fp < 0)
    156157        {
    157         syslog(LOG_ERR, "error opening job file");
     158        pam_syslog(pamh, LOG_ERR, "error opening job file");
    158159        continue;
    159160        }
    160161
     
    163164      if (amt != sizeof(xjob.ji_qs))
    164165        {
    165166        close(fp);
    166         syslog(LOG_ERR, "short read of job file");
     167        pam_syslog(pamh, LOG_ERR, "short read of job file");
    167168        continue;
    168169        }
    169170
     
    171172        {
    172173        /* odd, this really should be JOB_UNION_TYPE_MOM */
    173174        close(fp);
    174         syslog(LOG_ERR, "job file corrupt");
     175        pam_syslog(pamh, LOG_ERR, "job file corrupt");
    175176        continue;
    176177        }
    177178
    178       if (debug) syslog(LOG_INFO, "state=%d, substate=%d", xjob.ji_qs.ji_state, xjob.ji_qs.ji_substate);
     179      if (debug) pam_syslog(pamh, LOG_INFO, "state=%d, substate=%d", xjob.ji_qs.ji_state, xjob.ji_qs.ji_substate);
    179180
    180181      if ((xjob.ji_qs.ji_un.ji_momt.ji_exuid == user_pwd->pw_uid) &&
    181182          ((xjob.ji_qs.ji_substate == JOB_SUBSTATE_PRERUN) ||
     
    185186        /* success! */
    186187        close(fp);
    187188
    188         if (debug) syslog(LOG_INFO, "allowed by %s", jdent->d_name);
     189        if (debug) pam_syslog(pamh, LOG_INFO, "allowed by %s", jdent->d_name);
    189190
    190191        retval = PAM_SUCCESS;
    191192
     
    202203  if (ubuf)
    203204    free(ubuf);
    204205
    205   if (debug) syslog(LOG_INFO, "returning %s", retval == PAM_SUCCESS ? "success" : "failed");
     206  if (debug) pam_syslog(pamh, LOG_INFO, "returning %s", retval == PAM_SUCCESS ? "success" : "failed");
    206207
    207   closelog();
    208208
    209209  return retval;
    210210  }
Note: See TracBrowser for help on using the repository browser.