Changeset 931 in openpam


Ignore:
Timestamp:
Apr 26, 2017, 7:23:50 PM (20 months ago)
Author:
Dag-Erling Smørgrav
Message:

Introduce an array of error strings and use it wherever applicable.

Location:
trunk/lib/libpam
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/libpam/openpam_constants.c

    r690 r931  
    4545
    4646const char *pam_err_name[PAM_NUM_ERRORS] = {
    47         "PAM_SUCCESS",
    48         "PAM_OPEN_ERR",
    49         "PAM_SYMBOL_ERR",
    50         "PAM_SERVICE_ERR",
    51         "PAM_SYSTEM_ERR",
    52         "PAM_BUF_ERR",
    53         "PAM_CONV_ERR",
    54         "PAM_PERM_DENIED",
    55         "PAM_MAXTRIES",
    56         "PAM_AUTH_ERR",
    57         "PAM_NEW_AUTHTOK_REQD",
    58         "PAM_CRED_INSUFFICIENT",
    59         "PAM_AUTHINFO_UNAVAIL",
    60         "PAM_USER_UNKNOWN",
    61         "PAM_CRED_UNAVAIL",
    62         "PAM_CRED_EXPIRED",
    63         "PAM_CRED_ERR",
    64         "PAM_ACCT_EXPIRED",
    65         "PAM_AUTHTOK_EXPIRED",
    66         "PAM_SESSION_ERR",
    67         "PAM_AUTHTOK_ERR",
    68         "PAM_AUTHTOK_RECOVERY_ERR",
    69         "PAM_AUTHTOK_LOCK_BUSY",
    70         "PAM_AUTHTOK_DISABLE_AGING",
    71         "PAM_NO_MODULE_DATA",
    72         "PAM_IGNORE",
    73         "PAM_ABORT",
    74         "PAM_TRY_AGAIN",
    75         "PAM_MODULE_UNKNOWN",
    76         "PAM_DOMAIN_UNKNOWN"
     47        [PAM_SUCCESS]                    = "PAM_SUCCESS",
     48        [PAM_OPEN_ERR]                   = "PAM_OPEN_ERR",
     49        [PAM_SYMBOL_ERR]                 = "PAM_SYMBOL_ERR",
     50        [PAM_SERVICE_ERR]                = "PAM_SERVICE_ERR",
     51        [PAM_SYSTEM_ERR]                 = "PAM_SYSTEM_ERR",
     52        [PAM_BUF_ERR]                    = "PAM_BUF_ERR",
     53        [PAM_CONV_ERR]                   = "PAM_CONV_ERR",
     54        [PAM_PERM_DENIED]                = "PAM_PERM_DENIED",
     55        [PAM_MAXTRIES]                   = "PAM_MAXTRIES",
     56        [PAM_AUTH_ERR]                   = "PAM_AUTH_ERR",
     57        [PAM_NEW_AUTHTOK_REQD]           = "PAM_NEW_AUTHTOK_REQD",
     58        [PAM_CRED_INSUFFICIENT]          = "PAM_CRED_INSUFFICIENT",
     59        [PAM_AUTHINFO_UNAVAIL]           = "PAM_AUTHINFO_UNAVAIL",
     60        [PAM_USER_UNKNOWN]               = "PAM_USER_UNKNOWN",
     61        [PAM_CRED_UNAVAIL]               = "PAM_CRED_UNAVAIL",
     62        [PAM_CRED_EXPIRED]               = "PAM_CRED_EXPIRED",
     63        [PAM_CRED_ERR]                   = "PAM_CRED_ERR",
     64        [PAM_ACCT_EXPIRED]               = "PAM_ACCT_EXPIRED",
     65        [PAM_AUTHTOK_EXPIRED]            = "PAM_AUTHTOK_EXPIRED",
     66        [PAM_SESSION_ERR]                = "PAM_SESSION_ERR",
     67        [PAM_AUTHTOK_ERR]                = "PAM_AUTHTOK_ERR",
     68        [PAM_AUTHTOK_RECOVERY_ERR]       = "PAM_AUTHTOK_RECOVERY_ERR",
     69        [PAM_AUTHTOK_LOCK_BUSY]          = "PAM_AUTHTOK_LOCK_BUSY",
     70        [PAM_AUTHTOK_DISABLE_AGING]      = "PAM_AUTHTOK_DISABLE_AGING",
     71        [PAM_NO_MODULE_DATA]             = "PAM_NO_MODULE_DATA",
     72        [PAM_IGNORE]                     = "PAM_IGNORE",
     73        [PAM_ABORT]                      = "PAM_ABORT",
     74        [PAM_TRY_AGAIN]                  = "PAM_TRY_AGAIN",
     75        [PAM_MODULE_UNKNOWN]             = "PAM_MODULE_UNKNOWN",
     76        [PAM_DOMAIN_UNKNOWN]             = "PAM_DOMAIN_UNKNOWN",
     77        [PAM_BAD_HANDLE]                 = "PAM_BAD_HANDLE",
     78        [PAM_BAD_ITEM]                   = "PAM_BAD_ITEM",
     79};
     80
     81const char *pam_err_text[PAM_NUM_ERRORS] = {
     82        [PAM_SUCCESS]                    = "Success",
     83        [PAM_OPEN_ERR]                   = "Failed to load module",
     84        [PAM_SYMBOL_ERR]                 = "Invalid symbol",
     85        [PAM_SERVICE_ERR]                = "Error in service module",
     86        [PAM_SYSTEM_ERR]                 = "System error",
     87        [PAM_BUF_ERR]                    = "Memory buffer error",
     88        [PAM_CONV_ERR]                   = "Conversation failure",
     89        [PAM_PERM_DENIED]                = "Permission denied",
     90        [PAM_MAXTRIES]                   = "Maximum number of tries exceeded",
     91        [PAM_AUTH_ERR]                   = "Authentication error",
     92        [PAM_NEW_AUTHTOK_REQD]           = "New authentication token required",
     93        [PAM_CRED_INSUFFICIENT]          = "Insufficient credentials",
     94        [PAM_AUTHINFO_UNAVAIL]           = "Authentication information is unavailable",
     95        [PAM_USER_UNKNOWN]               = "Unknown user",
     96        [PAM_CRED_UNAVAIL]               = "Failed to retrieve user credentials",
     97        [PAM_CRED_EXPIRED]               = "User credentials have expired",
     98        [PAM_CRED_ERR]                   = "Failed to set user credentials",
     99        [PAM_ACCT_EXPIRED]               = "User account has expired",
     100        [PAM_AUTHTOK_EXPIRED]            = "Password has expired",
     101        [PAM_SESSION_ERR]                = "Session failure",
     102        [PAM_AUTHTOK_ERR]                = "Authentication token failure",
     103        [PAM_AUTHTOK_RECOVERY_ERR]       = "Failed to recover old authentication token",
     104        [PAM_AUTHTOK_LOCK_BUSY]          = "Authentication token lock busy",
     105        [PAM_AUTHTOK_DISABLE_AGING]      = "Authentication token aging disabled",
     106        [PAM_NO_MODULE_DATA]             = "Module data not found",
     107        [PAM_IGNORE]                     = "Ignore this module",
     108        [PAM_ABORT]                      = "General failure",
     109        [PAM_TRY_AGAIN]                  = "Try again",
     110        [PAM_MODULE_UNKNOWN]             = "Unknown module type",
     111        [PAM_DOMAIN_UNKNOWN]             = "Unknown authentication domain",
     112        [PAM_BAD_HANDLE]                 = "Invalid PAM handle",
     113        [PAM_BAD_ITEM]                   = "Unrecognized or restricted item",
    77114};
    78115
    79116const char *pam_item_name[PAM_NUM_ITEMS] = {
    80         "(NO ITEM)",
    81         "PAM_SERVICE",
    82         "PAM_USER",
    83         "PAM_TTY",
    84         "PAM_RHOST",
    85         "PAM_CONV",
    86         "PAM_AUTHTOK",
    87         "PAM_OLDAUTHTOK",
    88         "PAM_RUSER",
    89         "PAM_USER_PROMPT",
    90         "PAM_REPOSITORY",
    91         "PAM_AUTHTOK_PROMPT",
    92         "PAM_OLDAUTHTOK_PROMPT",
    93         "PAM_HOST",
     117        [PAM_SERVICE]            = "PAM_SERVICE",
     118        [PAM_USER]               = "PAM_USER",
     119        [PAM_TTY]                = "PAM_TTY",
     120        [PAM_RHOST]              = "PAM_RHOST",
     121        [PAM_CONV]               = "PAM_CONV",
     122        [PAM_AUTHTOK]            = "PAM_AUTHTOK",
     123        [PAM_OLDAUTHTOK]         = "PAM_OLDAUTHTOK",
     124        [PAM_RUSER]              = "PAM_RUSER",
     125        [PAM_USER_PROMPT]        = "PAM_USER_PROMPT",
     126        [PAM_REPOSITORY]         = "PAM_REPOSITORY",
     127        [PAM_AUTHTOK_PROMPT]     = "PAM_AUTHTOK_PROMPT",
     128        [PAM_OLDAUTHTOK_PROMPT]  = "PAM_OLDAUTHTOK_PROMPT",
     129        [PAM_HOST]               = "PAM_HOST",
    94130};
    95131
    96132const char *pam_facility_name[PAM_NUM_FACILITIES] = {
    97         [PAM_ACCOUNT]           = "account",
    98         [PAM_AUTH]              = "auth",
    99         [PAM_PASSWORD]          = "password",
    100         [PAM_SESSION]           = "session",
     133        [PAM_ACCOUNT]            = "account",
     134        [PAM_AUTH]               = "auth",
     135        [PAM_PASSWORD]           = "password",
     136        [PAM_SESSION]            = "session",
    101137};
    102138
    103139const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = {
    104         [PAM_BINDING]           = "binding",
    105         [PAM_OPTIONAL]          = "optional",
    106         [PAM_REQUIRED]          = "required",
    107         [PAM_REQUISITE]         = "requisite",
    108         [PAM_SUFFICIENT]        = "sufficient",
     140        [PAM_BINDING]            = "binding",
     141        [PAM_OPTIONAL]           = "optional",
     142        [PAM_REQUIRED]           = "required",
     143        [PAM_REQUISITE]          = "requisite",
     144        [PAM_SUFFICIENT]         = "sufficient",
    109145};
    110146
    111147const char *pam_func_name[PAM_NUM_PRIMITIVES] = {
    112         "pam_authenticate",
    113         "pam_setcred",
    114         "pam_acct_mgmt",
    115         "pam_open_session",
    116         "pam_close_session",
    117         "pam_chauthtok"
     148        [PAM_SM_AUTHENTICATE]    = "pam_authenticate",
     149        [PAM_SM_SETCRED]         = "pam_setcred",
     150        [PAM_SM_ACCT_MGMT]       = "pam_acct_mgmt",
     151        [PAM_SM_OPEN_SESSION]    = "pam_open_session",
     152        [PAM_SM_CLOSE_SESSION]   = "pam_close_session",
     153        [PAM_SM_CHAUTHTOK]       = "pam_chauthtok"
    118154};
    119155
    120156const char *pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
    121         "pam_sm_authenticate",
    122         "pam_sm_setcred",
    123         "pam_sm_acct_mgmt",
    124         "pam_sm_open_session",
    125         "pam_sm_close_session",
    126         "pam_sm_chauthtok"
     157        [PAM_SM_AUTHENTICATE]    = "pam_sm_authenticate",
     158        [PAM_SM_SETCRED]         = "pam_sm_setcred",
     159        [PAM_SM_ACCT_MGMT]       = "pam_sm_acct_mgmt",
     160        [PAM_SM_OPEN_SESSION]    = "pam_sm_open_session",
     161        [PAM_SM_CLOSE_SESSION]   = "pam_sm_close_session",
     162        [PAM_SM_CHAUTHTOK]       = "pam_sm_chauthtok"
    127163};
    128164
  • trunk/lib/libpam/openpam_constants.h

    r659 r931  
    3434
    3535extern const char *pam_err_name[PAM_NUM_ERRORS];
     36extern const char *pam_err_text[PAM_NUM_ERRORS];
    3637extern const char *pam_item_name[PAM_NUM_ITEMS];
    3738extern const char *pam_facility_name[PAM_NUM_FACILITIES];
  • trunk/lib/libpam/pam_getenvlist.c

    r913 r931  
    6464        if (envlist == NULL) {
    6565                openpam_log(PAM_LOG_ERROR, "%s",
    66                         pam_strerror(pamh, PAM_BUF_ERR));
     66                    pam_err_text[PAM_BUF_ERR]);
    6767                RETURNP(NULL);
    6868        }
     
    7575                        FREE(envlist);
    7676                        openpam_log(PAM_LOG_ERROR, "%s",
    77                                 pam_strerror(pamh, PAM_BUF_ERR));
     77                            pam_err_text[PAM_BUF_ERR]);
    7878                        RETURNP(NULL);
    7979                }
  • trunk/lib/libpam/pam_strerror.c

    r648 r931  
    6060
    6161        (void)pamh;
    62 
    63         switch (error_number) {
    64         case PAM_SUCCESS:
    65                 return ("success");
    66         case PAM_OPEN_ERR:
    67                 return ("failed to load module");
    68         case PAM_SYMBOL_ERR:
    69                 return ("invalid symbol");
    70         case PAM_SERVICE_ERR:
    71                 return ("error in service module");
    72         case PAM_SYSTEM_ERR:
    73                 return ("system error");
    74         case PAM_BUF_ERR:
    75                 return ("memory buffer error");
    76         case PAM_CONV_ERR:
    77                 return ("conversation failure");
    78         case PAM_PERM_DENIED:
    79                 return ("permission denied");
    80         case PAM_MAXTRIES:
    81                 return ("maximum number of tries exceeded");
    82         case PAM_AUTH_ERR:
    83                 return ("authentication error");
    84         case PAM_NEW_AUTHTOK_REQD:
    85                 return ("new authentication token required");
    86         case PAM_CRED_INSUFFICIENT:
    87                 return ("insufficient credentials");
    88         case PAM_AUTHINFO_UNAVAIL:
    89                 return ("authentication information is unavailable");
    90         case PAM_USER_UNKNOWN:
    91                 return ("unknown user");
    92         case PAM_CRED_UNAVAIL:
    93                 return ("failed to retrieve user credentials");
    94         case PAM_CRED_EXPIRED:
    95                 return ("user credentials have expired");
    96         case PAM_CRED_ERR:
    97                 return ("failed to set user credentials");
    98         case PAM_ACCT_EXPIRED:
    99                 return ("user account has expired");
    100         case PAM_AUTHTOK_EXPIRED:
    101                 return ("password has expired");
    102         case PAM_SESSION_ERR:
    103                 return ("session failure");
    104         case PAM_AUTHTOK_ERR:
    105                 return ("authentication token failure");
    106         case PAM_AUTHTOK_RECOVERY_ERR:
    107                 return ("failed to recover old authentication token");
    108         case PAM_AUTHTOK_LOCK_BUSY:
    109                 return ("authentication token lock busy");
    110         case PAM_AUTHTOK_DISABLE_AGING:
    111                 return ("authentication token aging disabled");
    112         case PAM_NO_MODULE_DATA:
    113                 return ("module data not found");
    114         case PAM_IGNORE:
    115                 return ("ignore this module");
    116         case PAM_ABORT:
    117                 return ("general failure");
    118         case PAM_TRY_AGAIN:
    119                 return ("try again");
    120         case PAM_MODULE_UNKNOWN:
    121                 return ("unknown module type");
    122         case PAM_DOMAIN_UNKNOWN:
    123                 return ("unknown authentication domain");
    124         default:
     62        if (error_number >= 0 && error_number < PAM_NUM_ERRORS) {
     63                return (pam_err_text[error_number]);
     64        } else {
    12565                snprintf(unknown, sizeof unknown, "#%d", error_number);
    12666                return (unknown);
Note: See TracChangeset for help on using the changeset viewer.