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