Lines Matching defs:pamh

145 pam_trace_cname(pam_handle_t *pamh)
147 if (pamh->pam_conf_name[pamh->include_depth] == NULL)
149 return (pamh->pam_conf_name[pamh->include_depth]);
291 const struct pam_conv *pam_conv, pam_handle_t **pamh)
295 *pamh = calloc(1, sizeof (struct pam_handle));
301 (void *)*pamh, pam_debug);
303 if (*pamh == NULL)
306 (*pamh)->pam_inmodule = RO_OK; /* OK to set RO items */
307 if ((err = pam_set_item(*pamh, PAM_SERVICE, (void *)service))
309 clean_up(*pamh);
310 *pamh = NULL;
314 if ((err = pam_set_item(*pamh, PAM_USER, (void *)user))
316 clean_up(*pamh);
317 *pamh = NULL;
321 if ((err = pam_set_item(*pamh, PAM_CONV, (void *)pam_conv))
323 clean_up(*pamh);
324 *pamh = NULL;
328 (*pamh)->pam_inmodule = RW_OK;
337 pam_end(pam_handle_t *pamh, int pam_status)
346 "pam_end(%p): status = %s", (void *)pamh,
347 pam_strerror(pamh, pam_status));
349 if (pamh == NULL)
354 psd = pamh->ssd;
357 psd->cleanup(pamh, psd->data, pam_status);
364 pamh->ssd = NULL;
367 traverse = pamh->fd;
374 pamh->fd = 0;
377 env_traverse = pamh->pam_env;
384 clean_up(pamh);
394 pam_set_item(pam_handle_t *pamh, int item_type, const void *item)
400 if (((pam_debug & PAM_DEBUG_ITEM) == 0) || (pamh == NULL)) {
402 "pam_set_item(%p:%s)", (void *)pamh,
406 if (pamh == NULL)
410 if ((item_type == PAM_SERVICE) && (pamh->pam_inmodule != RO_OK))
420 pip = &(pamh->ps_item[item_type]);
503 (void *)pamh,
510 (void *)pamh,
521 "pam_set_item(%p:%s)=%s", (void *)pamh,
527 "pam_set_item(%p:%s)=%s", (void *)pamh,
533 (void *)pamh,
547 pam_get_item(const pam_handle_t *pamh, int item_type, void **item)
552 if (((pam_debug & PAM_DEBUG_ITEM) == 0) || (pamh == NULL)) {
554 (void *)pamh, pam_trace_iname(item_type, iname_buf));
557 if (pamh == NULL)
563 if ((pamh->pam_inmodule != WO_OK) &&
571 pip = (struct pam_item *)&(pamh->ps_item[item_type]);
577 (void *)pamh,
583 (void *)pamh,
594 "pam_get_item(%p:%s)=%s", (void *)pamh,
600 "pam_get_item(%p:%s)=%s", (void *)pamh,
606 (void *)pamh,
685 pam_get_user(pam_handle_t *pamh, char **user, const char *prompt_override)
694 "pam_get_user(%p, %p, %s)", (void *)pamh, (void *)*user,
696 if (pamh == NULL)
699 if ((status = pam_get_item(pamh, PAM_USER, (void **)user))
718 status = pam_get_item(pamh, PAM_USER_PROMPT, (void**)&prompt);
737 status = do_conv(pamh, PAM_PROMPT_ECHO_ON, 1, messages,
775 status = pam_set_item(pamh, PAM_USER, real_username);
789 status = pam_get_item(pamh, PAM_USER, (void**)user);
798 pam_set_data(pam_handle_t *pamh, const char *module_data_name, void *data,
799 void (*cleanup)(pam_handle_t *pamh, void *data, int pam_end_status))
804 "pam_set_data(%p:%s:%d)=%p", (void *)pamh,
806 (pamh != NULL) ? pamh->pam_inmodule : -1, data);
807 if (pamh == NULL || (pamh->pam_inmodule != WO_OK) ||
814 for (psd = pamh->ssd; psd; psd = psd->next) {
818 psd->cleanup(pamh, psd->data, PAM_SUCCESS);
838 psd->next = pamh->ssd;
839 pamh->ssd = psd;
848 pam_get_data(const pam_handle_t *pamh, const char *module_data_name,
853 if (pamh == NULL || (pamh->pam_inmodule != WO_OK) ||
856 "pam_get_data(%p:%s:%d)=%p", (void *)pamh,
858 pamh->pam_inmodule, *data);
862 for (psd = pamh->ssd; psd; psd = psd->next) {
866 "pam_get_data(%p:%s)=%p", (void *)pamh,
872 "pam_get_data(%p:%s)=%s", (void *)pamh, module_data_name,
883 pam_strerror(pam_handle_t *pamh, int errnum)
1009 run_stack(pam_handle_t *pamh, int flags, int type, int def_err, int ind,
1019 if (pamh == NULL)
1023 if ((err = read_pam_conf(pamh, PAM_CONFIG)) != PAM_SUCCESS) {
1028 pamh->pam_conf_info[pamh->include_depth][type]) == NULL) {
1030 pam_trace_cname(pamh));
1034 pamh->pam_inmodule = WO_OK; /* OK to get AUTHTOK */
1037 "[%d:%s]:run_stack:%s(%p, %x): %s", pamh->include_depth,
1038 pam_trace_cname(pamh), function_name, (void *)pamh, flags,
1044 pamh->pam_conf_modulep[pamh->include_depth] =
1048 pamh->include_depth, (void *)modulep->next);
1049 if (pamh->include_depth++ >= PAM_MAX_INCLUDE) {
1053 "allowed", pamh->include_depth,
1054 modulep->module_path, pamh->pam_conf_name
1056 pamh->pam_conf_name[PAM_MAX_INCLUDE],
1060 if ((err = read_pam_conf(pamh,
1064 "conf %s", pamh->include_depth,
1065 pam_trace_cname(pamh),
1069 if ((modulep = pamh->pam_conf_info
1070 [pamh->include_depth][type]) == NULL) {
1073 "present %s", pamh->include_depth,
1074 pam_trace_cname(pamh), function_name);
1082 "(%p, %s)=%s", pamh->include_depth,
1083 pam_trace_cname(pamh), (void *)pamh,
1085 if ((err = load_modules(pamh, type, sm_name(ind),
1086 pamh->pam_conf_info
1087 [pamh->include_depth][type])) != PAM_SUCCESS) {
1090 pamh->include_depth, pam_trace_cname(pamh),
1091 function_name, (void *)pamh, flags);
1094 if ((modulep = pamh->pam_conf_info
1095 [pamh->include_depth][type]) == NULL) {
1098 pam_trace_cname(pamh));
1101 } else if ((err = load_modules(pamh, type, sm_name(ind),
1105 pamh->include_depth, pam_trace_cname(pamh),
1106 function_name, (void *)pamh, flags);
1111 err = sm_func(pamh, flags, modulep->module_argc,
1116 pamh->include_depth, pam_trace_cname(pamh),
1117 function_name, (void *)pamh, flags,
1118 modulep->module_path, pam_strerror(pamh, err));
1127 pamh->pam_inmodule = RW_OK;
1130 pamh->include_depth,
1131 pam_trace_cname(pamh),
1132 function_name, (void *)pamh, flags,
1146 pamh->pam_inmodule = RW_OK;
1149 pamh->include_depth, pam_trace_cname(pamh),
1150 function_name, (void *)pamh, flags,
1151 pam_strerror(pamh, required_error ?
1157 pamh->pam_inmodule = RW_OK;
1160 pamh->include_depth,
1161 pam_trace_cname(pamh),
1162 function_name, (void *)pamh, flags,
1163 pam_strerror(pamh,
1178 pamh->include_depth, pam_trace_cname(pamh),
1179 function_name, (void *)pamh, flags,
1180 pam_strerror(pamh, err));
1188 pamh->include_depth, pam_trace_cname(pamh), function_name,
1189 (void *)pamh, flags, pamh->include_depth ? "included" : "final",
1192 pam_strerror(pamh, required_error ? required_error :
1194 if (pamh->include_depth > 0) {
1195 free_pam_conf_info(pamh);
1196 pamh->include_depth--;
1198 modulep = pamh->pam_conf_modulep[pamh->include_depth];
1200 pamh->include_depth, (void *)modulep);
1203 free_pam_conf_info(pamh);
1204 pamh->pam_inmodule = RW_OK;
1219 while (pamh->include_depth > 0) {
1220 free_pam_conf_info(pamh);
1221 pamh->include_depth--;
1223 free_pam_conf_info(pamh);
1224 pamh->pam_inmodule = RW_OK;
1233 pam_authenticate(pam_handle_t *pamh, int flags)
1237 retval = run_stack(pamh, flags, PAM_AUTH_MODULE, PAM_AUTH_ERR,
1241 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1250 pam_setcred(pam_handle_t *pamh, int flags)
1254 retval = run_stack(pamh, flags, PAM_AUTH_MODULE, PAM_CRED_ERR,
1258 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1267 pam_acct_mgmt(pam_handle_t *pamh, int flags)
1271 retval = run_stack(pamh, flags, PAM_ACCOUNT_MODULE, PAM_ACCT_EXPIRED,
1276 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1286 pam_open_session(pam_handle_t *pamh, int flags)
1290 retval = run_stack(pamh, flags, PAM_SESSION_MODULE, PAM_SESSION_ERR,
1294 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1303 pam_close_session(pam_handle_t *pamh, int flags)
1307 retval = run_stack(pamh, flags, PAM_SESSION_MODULE, PAM_SESSION_ERR,
1311 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1320 pam_chauthtok(pam_handle_t *pamh, int flags)
1327 "pam_chauthtok(%p, %x): %s", (void *)pamh, flags,
1328 pam_strerror(pamh, PAM_SYMBOL_ERR));
1333 retval = run_stack(pamh, flags | PAM_PRELIM_CHECK, PAM_PASSWORD_MODULE,
1340 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1345 retval = run_stack(pamh, flags | PAM_UPDATE_AUTHTOK,
1350 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL);
1363 pam_putenv(pam_handle_t *pamh, const char *name_value)
1371 "pam_putenv(%p, %s)", (void *)pamh,
1374 if (pamh == NULL || name_value == NULL)
1397 traverse = pamh->pam_env;
1408 if (pamh->pam_env == traverse)
1409 pamh->pam_env = traverse->next;
1452 pamh->pam_env = traverse;
1481 pam_getenv(pam_handle_t *pamh, const char *name)
1487 "pam_getenv(%p, %p)", (void *)pamh, (void *)name);
1489 if (pamh == NULL || name == NULL)
1493 traverse = pamh->pam_env;
1499 "pam_getenv(%p, %s)=%s", (void *)pamh, name,
1510 pam_getenvlist(pam_handle_t *pamh)
1520 "pam_getenvlist(%p)", (void *)pamh);
1522 if (pamh == NULL)
1526 traverse = pamh->pam_env;
1540 traverse = pamh->pam_env;
1582 load_modules(pam_handle_t *pamh, int type, char *function_name,
1593 pamh->include_depth, pam_trace_cname(pamh), (void *)pamh,
1600 pamh->include_depth, pam_trace_cname(pamh), (void *)pamh,
1606 pamh->include_depth, pam_trace_cname(pamh),
1607 (void *)pamh, function_name,
1633 if ((mh = open_module(pamh,
1637 "%s", pamh->include_depth,
1638 pam_trace_cname(pamh),
1684 if ((mh = open_module(pamh,
1688 "%s", pamh->include_depth,
1689 pam_trace_cname(pamh),
1699 "missing", pamh->include_depth,
1700 pam_trace_cname(pamh));
1727 if ((mh = open_module(pamh,
1731 "%s", pamh->include_depth,
1732 pam_trace_cname(pamh),
1771 if ((mh = open_module(pamh,
1775 "%s", pamh->include_depth,
1776 pam_trace_cname(pamh),
1792 pamh->include_depth, pam_trace_cname(pamh),
1793 (void *)pamh, function_name, type);
1801 pamh->include_depth, pam_trace_cname(pamh), (void *)pamh,
1813 open_module(pam_handle_t *pamh, char *module_so)
1826 pamh->include_depth, pam_trace_cname(pamh), module_so,
1833 pamh->include_depth, pam_trace_cname(pamh), module_so);
1839 pamh->include_depth, pam_trace_cname(pamh), module_so);
1845 pamh->include_depth, pam_trace_cname(pamh), module_so);
1857 "failed: %s", pamh->include_depth, pam_trace_cname(pamh),
1869 if (pamh->fd == 0) {
1871 pamh->fd = module_fds;
1874 traverse = pamh->fd;
1919 open_pam_conf(struct pam_fh **pam_fh, pam_handle_t *pamh, char *config)
1927 pamh->include_depth, pam_trace_cname(pamh), config,
1935 pamh->include_depth, pam_trace_cname(pamh), config,
1943 pamh->include_depth, pam_trace_cname(pamh), config);
1950 pamh->include_depth, pam_trace_cname(pamh), config);
1957 pamh->include_depth, pam_trace_cname(pamh), config);
1996 read_pam_conf(pam_handle_t *pamh, char *config)
2003 int i = pamh->include_depth; /* include depth */
2010 (void) pam_get_item(pamh, PAM_SERVICE, (void **)&service);
2016 pamh->pam_conf_name[i] = strdup(config);
2018 i, pam_trace_cname(pamh), (void *)pamh, config);
2019 if (open_pam_conf(&pam_fh, pamh, config) == 0) {
2024 get_pam_conf_entry(pam_fh, pamh, &pamentp)) == PAM_SUCCESS &&
2031 i, pam_trace_cname(pamh), (void *)pamh, service);
2040 i, pam_trace_cname(pamh), (void *)pamh, service);
2044 while ((tpament = pamh->pam_conf_info[i]
2049 (void *)pamh, i,
2050 pam_trace_cname(pamh),
2052 pamh->pam_conf_info[i]
2060 (void *)pamh, service, i,
2061 pam_trace_cname(pamh),
2063 pamh->pam_conf_info[i][pamentp->pam_type] =
2071 (void *)pamh, service, i,
2072 pam_trace_cname(pamh),
2075 pamh->pam_conf_info[i][pamentp->pam_type];
2087 (void *)pamh, service, i,
2088 pam_trace_cname(pamh));
2096 "\"other\"[%d:%s]", (void *)pamh, i,
2097 pam_trace_cname(pamh));
2098 if ((tpament = pamh->pam_conf_info[i]
2103 "other[%d:%s][%s]", (void *)pamh, i,
2104 pam_trace_cname(pamh),
2106 pamh->pam_conf_info[i]
2112 "other[%d:%s][%s]", (void *)pamh, i,
2113 pam_trace_cname(pamh),
2132 free_pam_conf_info(pamh);
2141 get_pam_conf_entry(struct pam_fh *pam_fh, pam_handle_t *pamh, pamtab_t **pam)
2152 if ((cp = nextline(pam_fh, pamh, &err)) == NULL) {
2171 "pam.conf[%s] entry:\t%s", pam_trace_cname(pamh), current_line);
2177 pam_trace_cname(pamh), current_line);
2189 pam_trace_cname(pamh), current_line);
2205 "type: %s", pam_trace_cname(pamh), current_line, arg);
2214 pam_trace_cname(pamh), current_line);
2233 pam_trace_cname(pamh), current_line);
2243 pam_trace_cname(pamh), current_line);
2387 nextline(struct pam_fh *pam_fh, pam_handle_t *pamh, int *err)
2450 pamh->include_depth, pam_trace_cname(pamh),
2463 pamh->include_depth, pam_trace_cname(pamh),
2504 clean_up(pam_handle_t *pamh)
2509 if (pamh) {
2510 while (pamh->include_depth >= 0) {
2511 free_pam_conf_info(pamh);
2512 pamh->include_depth--;
2516 auth_rep = pamh->ps_item[PAM_REPOSITORY].pi_addr;
2525 if (pamh->ps_item[i].pi_addr != NULL) {
2527 (void) memset(pamh->ps_item[i].pi_addr,
2528 0, pamh->ps_item[i].pi_size);
2530 free(pamh->ps_item[i].pi_addr);
2533 free(pamh);
2570 free_pam_conf_info(pam_handle_t *pamh)
2574 int i = pamh->include_depth;
2578 pamentp = pamh->pam_conf_info[i][j];
2579 pamh->pam_conf_info[i][j] = NULL;
2587 if (pamh->pam_conf_name[i] != NULL) {
2588 free(pamh->pam_conf_name[i]);
2589 pamh->pam_conf_name[i] = NULL;
2645 do_conv(pam_handle_t *pamh, int msg_style, int num_msg,
2656 if ((retcode = pam_get_item(pamh, PAM_CONV,
2687 (void *)pamh, msg_style, i, messages[i]);
2708 (void *)pamh, pam_strerror(pamh, retcode), (void *)ret_respp);
2711 "pam_conv_resp(%p No response requested)", (void *)pamh);
2720 (void *)pamh, i);
2727 (void *)pamh, i, r->resp,
2733 (void *)pamh, i,
2740 (void *)pamh, i, r->resp,
2759 __pam_display_msg(pam_handle_t *pamh, int msg_style, int num_msg,
2765 ret = do_conv(pamh, msg_style, num_msg, messages,
2801 __pam_get_authtok(pam_handle_t *pamh, int source, int type, char *prompt,
2824 if ((error = pam_get_item(pamh, type,
2851 if ((error = do_conv(pamh, PAM_PROMPT_ECHO_OFF, 1, messages,
2863 if ((error = pam_get_item(pamh, type,
2869 (void) pam_set_item(pamh, type, ret_resp->resp);