Lines Matching refs:pamh

146 pam_trace_cname(pam_handle_t *pamh)  in pam_trace_cname()  argument
148 if (pamh->pam_conf_name[pamh->include_depth] == NULL) in pam_trace_cname()
150 return (pamh->pam_conf_name[pamh->include_depth]); in pam_trace_cname()
292 const struct pam_conv *pam_conv, pam_handle_t **pamh) in pam_start() argument
296 *pamh = calloc(1, sizeof (struct pam_handle)); in pam_start()
302 (void *)*pamh, pam_debug); in pam_start()
304 if (*pamh == NULL) in pam_start()
307 (*pamh)->pam_inmodule = RO_OK; /* OK to set RO items */ in pam_start()
308 if ((err = pam_set_item(*pamh, PAM_SERVICE, (void *)service)) in pam_start()
310 clean_up(*pamh); in pam_start()
311 *pamh = NULL; in pam_start()
315 if ((err = pam_set_item(*pamh, PAM_USER, (void *)user)) in pam_start()
317 clean_up(*pamh); in pam_start()
318 *pamh = NULL; in pam_start()
322 if ((err = pam_set_item(*pamh, PAM_CONV, (void *)pam_conv)) in pam_start()
324 clean_up(*pamh); in pam_start()
325 *pamh = NULL; in pam_start()
329 (*pamh)->pam_inmodule = RW_OK; in pam_start()
338 pam_end(pam_handle_t *pamh, int pam_status) in pam_end() argument
347 "pam_end(%p): status = %s", (void *)pamh, in pam_end()
348 pam_strerror(pamh, pam_status)); in pam_end()
350 if (pamh == NULL) in pam_end()
355 psd = pamh->ssd; in pam_end()
358 psd->cleanup(pamh, psd->data, pam_status); in pam_end()
365 pamh->ssd = NULL; in pam_end()
368 traverse = pamh->fd; in pam_end()
375 pamh->fd = 0; in pam_end()
378 env_traverse = pamh->pam_env; in pam_end()
385 clean_up(pamh); in pam_end()
395 pam_set_item(pam_handle_t *pamh, int item_type, const void *item) in pam_set_item() argument
401 if (((pam_debug & PAM_DEBUG_ITEM) == 0) || (pamh == NULL)) { in pam_set_item()
403 "pam_set_item(%p:%s)", (void *)pamh, in pam_set_item()
407 if (pamh == NULL) in pam_set_item()
411 if ((item_type == PAM_SERVICE) && (pamh->pam_inmodule != RO_OK)) in pam_set_item()
421 pip = &(pamh->ps_item[item_type]); in pam_set_item()
504 (void *)pamh, in pam_set_item()
511 (void *)pamh, in pam_set_item()
522 "pam_set_item(%p:%s)=%s", (void *)pamh, in pam_set_item()
528 "pam_set_item(%p:%s)=%s", (void *)pamh, in pam_set_item()
534 (void *)pamh, in pam_set_item()
548 pam_get_item(const pam_handle_t *pamh, int item_type, const void **item) in pam_get_item() argument
553 if (((pam_debug & PAM_DEBUG_ITEM) == 0) || (pamh == NULL)) { in pam_get_item()
555 (void *)pamh, pam_trace_iname(item_type, iname_buf)); in pam_get_item()
558 if (pamh == NULL) in pam_get_item()
564 if ((pamh->pam_inmodule != WO_OK) && in pam_get_item()
572 pip = (struct pam_item *)&(pamh->ps_item[item_type]); in pam_get_item()
578 (void *)pamh, in pam_get_item()
584 (void *)pamh, in pam_get_item()
595 "pam_get_item(%p:%s)=%s", (void *)pamh, in pam_get_item()
601 "pam_get_item(%p:%s)=%s", (void *)pamh, in pam_get_item()
607 (void *)pamh, in pam_get_item()
686 pam_get_user(pam_handle_t *pamh, const char **user, in pam_get_user() argument
696 "pam_get_user(%p, %p, %s)", (void *)pamh, (void *)*user, in pam_get_user()
698 if (pamh == NULL) in pam_get_user()
701 if ((status = pam_get_item(pamh, PAM_USER, (const void **)user)) in pam_get_user()
720 status = pam_get_item(pamh, PAM_USER_PROMPT, in pam_get_user()
740 status = do_conv(pamh, PAM_PROMPT_ECHO_ON, 1, messages, in pam_get_user()
778 status = pam_set_item(pamh, PAM_USER, real_username); in pam_get_user()
792 status = pam_get_item(pamh, PAM_USER, (const void**)user); in pam_get_user()
801 pam_set_data(pam_handle_t *pamh, const char *module_data_name, void *data, in pam_set_data() argument
802 void (*cleanup)(pam_handle_t *pamh, void *data, int pam_end_status)) in pam_set_data() argument
807 "pam_set_data(%p:%s:%d)=%p", (void *)pamh, in pam_set_data()
809 (pamh != NULL) ? pamh->pam_inmodule : -1, data); in pam_set_data()
810 if (pamh == NULL || (pamh->pam_inmodule != WO_OK) || in pam_set_data()
817 for (psd = pamh->ssd; psd; psd = psd->next) { in pam_set_data()
821 psd->cleanup(pamh, psd->data, PAM_SUCCESS); in pam_set_data()
841 psd->next = pamh->ssd; in pam_set_data()
842 pamh->ssd = psd; in pam_set_data()
851 pam_get_data(const pam_handle_t *pamh, const char *module_data_name, in pam_get_data() argument
856 if (pamh == NULL || (pamh->pam_inmodule != WO_OK) || in pam_get_data()
859 "pam_get_data(%p:%s:%d)=%p", (void *)pamh, in pam_get_data()
861 pamh->pam_inmodule, *data); in pam_get_data()
865 for (psd = pamh->ssd; psd; psd = psd->next) { in pam_get_data()
869 "pam_get_data(%p:%s)=%p", (void *)pamh, in pam_get_data()
875 "pam_get_data(%p:%s)=%s", (void *)pamh, module_data_name, in pam_get_data()
886 pam_strerror(pam_handle_t *pamh, int errnum) in pam_strerror() argument
1012 run_stack(pam_handle_t *pamh, int flags, int type, int def_err, int ind, in run_stack() argument
1022 if (pamh == NULL) in run_stack()
1026 if ((err = read_pam_conf(pamh, PAM_CONFIG)) != PAM_SUCCESS) { in run_stack()
1031 pamh->pam_conf_info[pamh->include_depth][type]) == NULL) { in run_stack()
1033 pam_trace_cname(pamh)); in run_stack()
1037 pamh->pam_inmodule = WO_OK; /* OK to get AUTHTOK */ in run_stack()
1040 "[%d:%s]:run_stack:%s(%p, %x): %s", pamh->include_depth, in run_stack()
1041 pam_trace_cname(pamh), function_name, (void *)pamh, flags, in run_stack()
1047 pamh->pam_conf_modulep[pamh->include_depth] = in run_stack()
1051 pamh->include_depth, (void *)modulep->next); in run_stack()
1052 if (pamh->include_depth++ >= PAM_MAX_INCLUDE) { in run_stack()
1056 "allowed", pamh->include_depth, in run_stack()
1057 modulep->module_path, pamh->pam_conf_name in run_stack()
1059 pamh->pam_conf_name[PAM_MAX_INCLUDE], in run_stack()
1063 if ((err = read_pam_conf(pamh, in run_stack()
1067 "conf %s", pamh->include_depth, in run_stack()
1068 pam_trace_cname(pamh), in run_stack()
1072 if ((modulep = pamh->pam_conf_info in run_stack()
1073 [pamh->include_depth][type]) == NULL) { in run_stack()
1076 "present %s", pamh->include_depth, in run_stack()
1077 pam_trace_cname(pamh), function_name); in run_stack()
1085 "(%p, %s)=%s", pamh->include_depth, in run_stack()
1086 pam_trace_cname(pamh), (void *)pamh, in run_stack()
1088 if ((err = load_modules(pamh, type, sm_name(ind), in run_stack()
1089 pamh->pam_conf_info in run_stack()
1090 [pamh->include_depth][type])) != PAM_SUCCESS) { in run_stack()
1093 pamh->include_depth, pam_trace_cname(pamh), in run_stack()
1094 function_name, (void *)pamh, flags); in run_stack()
1097 if ((modulep = pamh->pam_conf_info in run_stack()
1098 [pamh->include_depth][type]) == NULL) { in run_stack()
1101 pam_trace_cname(pamh)); in run_stack()
1104 } else if ((err = load_modules(pamh, type, sm_name(ind), in run_stack()
1108 pamh->include_depth, pam_trace_cname(pamh), in run_stack()
1109 function_name, (void *)pamh, flags); in run_stack()
1114 err = sm_func(pamh, flags, modulep->module_argc, in run_stack()
1119 pamh->include_depth, pam_trace_cname(pamh), in run_stack()
1120 function_name, (void *)pamh, flags, in run_stack()
1121 modulep->module_path, pam_strerror(pamh, err)); in run_stack()
1130 pamh->pam_inmodule = RW_OK; in run_stack()
1133 pamh->include_depth, in run_stack()
1134 pam_trace_cname(pamh), in run_stack()
1135 function_name, (void *)pamh, flags, in run_stack()
1149 pamh->pam_inmodule = RW_OK; in run_stack()
1152 pamh->include_depth, pam_trace_cname(pamh), in run_stack()
1153 function_name, (void *)pamh, flags, in run_stack()
1154 pam_strerror(pamh, required_error ? in run_stack()
1160 pamh->pam_inmodule = RW_OK; in run_stack()
1163 pamh->include_depth, in run_stack()
1164 pam_trace_cname(pamh), in run_stack()
1165 function_name, (void *)pamh, flags, in run_stack()
1166 pam_strerror(pamh, in run_stack()
1181 pamh->include_depth, pam_trace_cname(pamh), in run_stack()
1182 function_name, (void *)pamh, flags, in run_stack()
1183 pam_strerror(pamh, err)); in run_stack()
1191 pamh->include_depth, pam_trace_cname(pamh), function_name, in run_stack()
1192 (void *)pamh, flags, pamh->include_depth ? "included" : "final", in run_stack()
1195 pam_strerror(pamh, required_error ? required_error : in run_stack()
1197 if (pamh->include_depth > 0) { in run_stack()
1198 free_pam_conf_info(pamh); in run_stack()
1199 pamh->include_depth--; in run_stack()
1201 modulep = pamh->pam_conf_modulep[pamh->include_depth]; in run_stack()
1203 pamh->include_depth, (void *)modulep); in run_stack()
1206 free_pam_conf_info(pamh); in run_stack()
1207 pamh->pam_inmodule = RW_OK; in run_stack()
1222 while (pamh->include_depth > 0) { in run_stack()
1223 free_pam_conf_info(pamh); in run_stack()
1224 pamh->include_depth--; in run_stack()
1226 free_pam_conf_info(pamh); in run_stack()
1227 pamh->pam_inmodule = RW_OK; in run_stack()
1236 pam_authenticate(pam_handle_t *pamh, int flags) in pam_authenticate() argument
1240 retval = run_stack(pamh, flags, PAM_AUTH_MODULE, PAM_AUTH_ERR, in pam_authenticate()
1244 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_authenticate()
1253 pam_setcred(pam_handle_t *pamh, int flags) in pam_setcred() argument
1257 retval = run_stack(pamh, flags, PAM_AUTH_MODULE, PAM_CRED_ERR, in pam_setcred()
1261 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_setcred()
1270 pam_acct_mgmt(pam_handle_t *pamh, int flags) in pam_acct_mgmt() argument
1274 retval = run_stack(pamh, flags, PAM_ACCOUNT_MODULE, PAM_ACCT_EXPIRED, in pam_acct_mgmt()
1279 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_acct_mgmt()
1289 pam_open_session(pam_handle_t *pamh, int flags) in pam_open_session() argument
1293 retval = run_stack(pamh, flags, PAM_SESSION_MODULE, PAM_SESSION_ERR, in pam_open_session()
1297 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_open_session()
1306 pam_close_session(pam_handle_t *pamh, int flags) in pam_close_session() argument
1310 retval = run_stack(pamh, flags, PAM_SESSION_MODULE, PAM_SESSION_ERR, in pam_close_session()
1314 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_close_session()
1323 pam_chauthtok(pam_handle_t *pamh, int flags) in pam_chauthtok() argument
1330 "pam_chauthtok(%p, %x): %s", (void *)pamh, flags, in pam_chauthtok()
1331 pam_strerror(pamh, PAM_SYMBOL_ERR)); in pam_chauthtok()
1336 retval = run_stack(pamh, flags | PAM_PRELIM_CHECK, PAM_PASSWORD_MODULE, in pam_chauthtok()
1343 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_chauthtok()
1348 retval = run_stack(pamh, flags | PAM_UPDATE_AUTHTOK, in pam_chauthtok()
1353 (void) pam_set_item(pamh, PAM_AUTHTOK, NULL); in pam_chauthtok()
1366 pam_putenv(pam_handle_t *pamh, const char *name_value) in pam_putenv() argument
1374 "pam_putenv(%p, %s)", (void *)pamh, in pam_putenv()
1377 if (pamh == NULL || name_value == NULL) in pam_putenv()
1400 traverse = pamh->pam_env; in pam_putenv()
1411 if (pamh->pam_env == traverse) in pam_putenv()
1412 pamh->pam_env = traverse->next; in pam_putenv()
1455 pamh->pam_env = traverse; in pam_putenv()
1484 pam_getenv(pam_handle_t *pamh, const char *name) in pam_getenv() argument
1490 "pam_getenv(%p, %p)", (void *)pamh, (void *)name); in pam_getenv()
1492 if (pamh == NULL || name == NULL) in pam_getenv()
1496 traverse = pamh->pam_env; in pam_getenv()
1502 "pam_getenv(%p, %s)=%s", (void *)pamh, name, in pam_getenv()
1513 pam_getenvlist(pam_handle_t *pamh) in pam_getenvlist() argument
1523 "pam_getenvlist(%p)", (void *)pamh); in pam_getenvlist()
1525 if (pamh == NULL) in pam_getenvlist()
1529 traverse = pamh->pam_env; in pam_getenvlist()
1543 traverse = pamh->pam_env; in pam_getenvlist()
1585 load_modules(pam_handle_t *pamh, int type, char *function_name, in load_modules() argument
1596 pamh->include_depth, pam_trace_cname(pamh), (void *)pamh, in load_modules()
1603 pamh->include_depth, pam_trace_cname(pamh), (void *)pamh, in load_modules()
1609 pamh->include_depth, pam_trace_cname(pamh), in load_modules()
1610 (void *)pamh, function_name, in load_modules()
1636 if ((mh = open_module(pamh, in load_modules()
1640 "%s", pamh->include_depth, in load_modules()
1641 pam_trace_cname(pamh), in load_modules()
1687 if ((mh = open_module(pamh, in load_modules()
1691 "%s", pamh->include_depth, in load_modules()
1692 pam_trace_cname(pamh), in load_modules()
1702 "missing", pamh->include_depth, in load_modules()
1703 pam_trace_cname(pamh)); in load_modules()
1730 if ((mh = open_module(pamh, in load_modules()
1734 "%s", pamh->include_depth, in load_modules()
1735 pam_trace_cname(pamh), in load_modules()
1774 if ((mh = open_module(pamh, in load_modules()
1778 "%s", pamh->include_depth, in load_modules()
1779 pam_trace_cname(pamh), in load_modules()
1795 pamh->include_depth, pam_trace_cname(pamh), in load_modules()
1796 (void *)pamh, function_name, type); in load_modules()
1804 pamh->include_depth, pam_trace_cname(pamh), (void *)pamh, in load_modules()
1816 open_module(pam_handle_t *pamh, char *module_so) in open_module() argument
1829 pamh->include_depth, pam_trace_cname(pamh), module_so, in open_module()
1836 pamh->include_depth, pam_trace_cname(pamh), module_so); in open_module()
1842 pamh->include_depth, pam_trace_cname(pamh), module_so); in open_module()
1848 pamh->include_depth, pam_trace_cname(pamh), module_so); in open_module()
1860 "failed: %s", pamh->include_depth, pam_trace_cname(pamh), in open_module()
1872 if (pamh->fd == 0) { in open_module()
1874 pamh->fd = module_fds; in open_module()
1877 traverse = pamh->fd; in open_module()
1922 open_pam_conf(struct pam_fh **pam_fh, pam_handle_t *pamh, char *config) in open_pam_conf() argument
1930 pamh->include_depth, pam_trace_cname(pamh), config, in open_pam_conf()
1938 pamh->include_depth, pam_trace_cname(pamh), config, in open_pam_conf()
1946 pamh->include_depth, pam_trace_cname(pamh), config); in open_pam_conf()
1953 pamh->include_depth, pam_trace_cname(pamh), config); in open_pam_conf()
1960 pamh->include_depth, pam_trace_cname(pamh), config); in open_pam_conf()
1999 read_pam_conf(pam_handle_t *pamh, char *config) in read_pam_conf() argument
2006 int i = pamh->include_depth; /* include depth */ in read_pam_conf()
2013 (void) pam_get_item(pamh, PAM_SERVICE, (const void **)&service); in read_pam_conf()
2019 pamh->pam_conf_name[i] = strdup(config); in read_pam_conf()
2021 i, pam_trace_cname(pamh), (void *)pamh, config); in read_pam_conf()
2022 if (open_pam_conf(&pam_fh, pamh, config) == 0) { in read_pam_conf()
2027 get_pam_conf_entry(pam_fh, pamh, &pamentp)) == PAM_SUCCESS && in read_pam_conf()
2034 i, pam_trace_cname(pamh), (void *)pamh, service); in read_pam_conf()
2043 i, pam_trace_cname(pamh), (void *)pamh, service); in read_pam_conf()
2047 while ((tpament = pamh->pam_conf_info[i] in read_pam_conf()
2052 (void *)pamh, i, in read_pam_conf()
2053 pam_trace_cname(pamh), in read_pam_conf()
2055 pamh->pam_conf_info[i] in read_pam_conf()
2063 (void *)pamh, service, i, in read_pam_conf()
2064 pam_trace_cname(pamh), in read_pam_conf()
2066 pamh->pam_conf_info[i][pamentp->pam_type] = in read_pam_conf()
2074 (void *)pamh, service, i, in read_pam_conf()
2075 pam_trace_cname(pamh), in read_pam_conf()
2078 pamh->pam_conf_info[i][pamentp->pam_type]; in read_pam_conf()
2090 (void *)pamh, service, i, in read_pam_conf()
2091 pam_trace_cname(pamh)); in read_pam_conf()
2099 "\"other\"[%d:%s]", (void *)pamh, i, in read_pam_conf()
2100 pam_trace_cname(pamh)); in read_pam_conf()
2101 if ((tpament = pamh->pam_conf_info[i] in read_pam_conf()
2106 "other[%d:%s][%s]", (void *)pamh, i, in read_pam_conf()
2107 pam_trace_cname(pamh), in read_pam_conf()
2109 pamh->pam_conf_info[i] in read_pam_conf()
2115 "other[%d:%s][%s]", (void *)pamh, i, in read_pam_conf()
2116 pam_trace_cname(pamh), in read_pam_conf()
2135 free_pam_conf_info(pamh); in read_pam_conf()
2144 get_pam_conf_entry(struct pam_fh *pam_fh, pam_handle_t *pamh, pamtab_t **pam) in get_pam_conf_entry() argument
2155 if ((cp = nextline(pam_fh, pamh, &err)) == NULL) { in get_pam_conf_entry()
2174 "pam.conf[%s] entry:\t%s", pam_trace_cname(pamh), current_line); in get_pam_conf_entry()
2180 pam_trace_cname(pamh), current_line); in get_pam_conf_entry()
2192 pam_trace_cname(pamh), current_line); in get_pam_conf_entry()
2208 "type: %s", pam_trace_cname(pamh), current_line, arg); in get_pam_conf_entry()
2217 pam_trace_cname(pamh), current_line); in get_pam_conf_entry()
2236 pam_trace_cname(pamh), current_line); in get_pam_conf_entry()
2246 pam_trace_cname(pamh), current_line); in get_pam_conf_entry()
2390 nextline(struct pam_fh *pam_fh, pam_handle_t *pamh, int *err) in nextline() argument
2453 pamh->include_depth, pam_trace_cname(pamh), in nextline()
2466 pamh->include_depth, pam_trace_cname(pamh), in nextline()
2507 clean_up(pam_handle_t *pamh) in clean_up() argument
2512 if (pamh) { in clean_up()
2513 while (pamh->include_depth >= 0) { in clean_up()
2514 free_pam_conf_info(pamh); in clean_up()
2515 pamh->include_depth--; in clean_up()
2519 auth_rep = pamh->ps_item[PAM_REPOSITORY].pi_addr; in clean_up()
2528 if (pamh->ps_item[i].pi_addr != NULL) { in clean_up()
2530 (void) memset(pamh->ps_item[i].pi_addr, in clean_up()
2531 0, pamh->ps_item[i].pi_size); in clean_up()
2533 free(pamh->ps_item[i].pi_addr); in clean_up()
2536 free(pamh); in clean_up()
2573 free_pam_conf_info(pam_handle_t *pamh) in free_pam_conf_info() argument
2577 int i = pamh->include_depth; in free_pam_conf_info()
2581 pamentp = pamh->pam_conf_info[i][j]; in free_pam_conf_info()
2582 pamh->pam_conf_info[i][j] = NULL; in free_pam_conf_info()
2590 if (pamh->pam_conf_name[i] != NULL) { in free_pam_conf_info()
2591 free(pamh->pam_conf_name[i]); in free_pam_conf_info()
2592 pamh->pam_conf_name[i] = NULL; in free_pam_conf_info()
2648 do_conv(pam_handle_t *pamh, int msg_style, int num_msg, in do_conv() argument
2659 if ((retcode = pam_get_item(pamh, PAM_CONV, in do_conv()
2690 (void *)pamh, msg_style, i, messages[i]); in do_conv()
2712 (void *)pamh, pam_strerror(pamh, retcode), (void *)ret_respp); in do_conv()
2715 "pam_conv_resp(%p No response requested)", (void *)pamh); in do_conv()
2724 (void *)pamh, i); in do_conv()
2731 (void *)pamh, i, r->resp, in do_conv()
2737 (void *)pamh, i, in do_conv()
2744 (void *)pamh, i, r->resp, in do_conv()
2763 __pam_display_msg(pam_handle_t *pamh, int msg_style, int num_msg, in __pam_display_msg() argument
2772 ret = do_conv(pamh, msg_style, num_msg, messages, in __pam_display_msg()
2808 __pam_get_authtok(pam_handle_t *pamh, int source, int type, char *prompt, in __pam_get_authtok() argument
2831 if ((error = pam_get_item(pamh, type, in __pam_get_authtok()
2858 if ((error = do_conv(pamh, PAM_PROMPT_ECHO_OFF, 1, messages, in __pam_get_authtok()
2870 if ((error = pam_get_item(pamh, type, in __pam_get_authtok()
2876 (void) pam_set_item(pamh, type, ret_resp->resp); in __pam_get_authtok()