Changeset 913 in openpam
- Timestamp:
- Jan 21, 2017, 3:11:12 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/security/pam_appl.h
r648 r913 73 73 int 74 74 pam_end(pam_handle_t *_pamh, 75 int _status); 75 int _status) 76 OPENPAM_NONNULL((1)); 76 77 77 78 int -
trunk/lib/libpam/openpam_dispatch.c
r890 r913 70 70 71 71 ENTER(); 72 if (pamh == NULL)73 RETURNC(PAM_SYSTEM_ERR);74 72 75 73 /* prevent recursion */ -
trunk/lib/libpam/openpam_findenv.c
r648 r913 60 60 61 61 ENTER(); 62 if (pamh == NULL)63 RETURNN(-1);64 62 for (i = 0; i < pamh->env_count; ++i) 65 63 if (strncmp(pamh->env[i], name, len) == 0 && -
trunk/lib/libpam/openpam_impl.h
r648 r913 131 131 * Internal functions 132 132 */ 133 int openpam_configure(pam_handle_t *, const char *); 134 int openpam_dispatch(pam_handle_t *, int, int); 135 int openpam_findenv(pam_handle_t *, const char *, size_t); 136 pam_module_t *openpam_load_module(const char *); 137 void openpam_clear_chains(pam_chain_t **); 133 int openpam_configure(pam_handle_t *, const char *) 134 OPENPAM_NONNULL((1)); 135 int openpam_dispatch(pam_handle_t *, int, int) 136 OPENPAM_NONNULL((1)); 137 int openpam_findenv(pam_handle_t *, const char *, size_t) 138 OPENPAM_NONNULL((1,2)); 139 pam_module_t *openpam_load_module(const char *) 140 OPENPAM_NONNULL((1)); 141 void openpam_clear_chains(pam_chain_t **) 142 OPENPAM_NONNULL((1)); 138 143 139 int openpam_check_desc_owner_perms(const char *, int); 140 int openpam_check_path_owner_perms(const char *); 144 int openpam_check_desc_owner_perms(const char *, int) 145 OPENPAM_NONNULL((1)); 146 int openpam_check_path_owner_perms(const char *) 147 OPENPAM_NONNULL((1)); 141 148 142 149 #ifdef OPENPAM_STATIC_MODULES 143 pam_module_t *openpam_static(const char *); 150 pam_module_t *openpam_static(const char *) 151 OPENPAM_NONNULL((1)); 144 152 #endif 145 pam_module_t *openpam_dynamic(const char *); 153 pam_module_t *openpam_dynamic(const char *) 154 OPENPAM_NONNULL((1)); 146 155 147 156 #define FREE(p) \ -
trunk/lib/libpam/pam_end.c
r648 r913 61 61 62 62 ENTER(); 63 if (pamh == NULL)64 RETURNC(PAM_SYSTEM_ERR);65 63 66 64 /* clear module data */ … … 92 90 } 93 91 94 /*95 * Error codes:96 *97 * PAM_SYSTEM_ERR98 */99 100 92 /** 101 93 * The =pam_end function terminates a PAM transaction and destroys the -
trunk/lib/libpam/pam_get_authtok.c
r902 r913 77 77 78 78 ENTER(); 79 if (pamh == NULL || authtok == NULL)80 RETURNC(PAM_SYSTEM_ERR);81 79 *authtok = NULL; 82 80 twice = 0; -
trunk/lib/libpam/pam_get_data.c
r648 r913 61 61 62 62 ENTERS(module_data_name); 63 if (pamh == NULL)64 RETURNC(PAM_SYSTEM_ERR);65 63 for (dp = pamh->module_data; dp != NULL; dp = dp->next) { 66 64 if (strcmp(dp->name, module_data_name) == 0) { … … 75 73 * Error codes: 76 74 * 77 * PAM_SYSTEM_ERR78 75 * PAM_NO_MODULE_DATA 79 76 */ -
trunk/lib/libpam/pam_get_item.c
r648 r913 60 60 61 61 ENTERI(item_type); 62 if (pamh == NULL)63 RETURNC(PAM_SYSTEM_ERR);64 62 switch (item_type) { 65 63 case PAM_SERVICE: … … 87 85 * 88 86 * PAM_SYMBOL_ERR 89 * PAM_SYSTEM_ERR90 87 */ 91 88 -
trunk/lib/libpam/pam_get_user.c
r902 r913 70 70 71 71 ENTER(); 72 if (pamh == NULL || user == NULL)73 RETURNC(PAM_SYSTEM_ERR);74 72 r = pam_get_item(pamh, PAM_USER, (const void **)user); 75 73 if (r == PAM_SUCCESS && *user != NULL) -
trunk/lib/libpam/pam_getenv.c
r648 r913 62 62 63 63 ENTERS(name); 64 if (pamh == NULL) 65 RETURNS(NULL); 66 if (name == NULL || strchr(name, '=') != NULL) 64 if (strchr(name, '=') != NULL) 67 65 RETURNS(NULL); 68 66 if ((i = openpam_findenv(pamh, name, strlen(name))) < 0) 69 67 RETURNS(NULL); 70 for (str = pamh->env[i]; *str != '\0'; ++str) { 71 if (*str == '=') { 72 ++str; 73 break; 74 } 75 } 68 if ((str = strchr(pamh->env[i], '=')) == NULL) 69 RETURNS(""); 76 70 RETURNS(str); 77 71 } -
trunk/lib/libpam/pam_getenvlist.c
r648 r913 61 61 62 62 ENTER(); 63 if (pamh == NULL)64 RETURNP(NULL);65 63 envlist = malloc(sizeof(char *) * (pamh->env_count + 1)); 66 64 if (envlist == NULL) { -
trunk/lib/libpam/pam_putenv.c
r648 r913 59 59 { 60 60 char **env, *p; 61 size_t env_size; 61 62 int i; 62 63 63 64 ENTER(); 64 if (pamh == NULL)65 RETURNC(PAM_SYSTEM_ERR);66 65 67 66 /* sanity checks */ 68 if ( namevalue == NULL ||(p = strchr(namevalue, '=')) == NULL)67 if ((p = strchr(namevalue, '=')) == NULL) 69 68 RETURNC(PAM_SYSTEM_ERR); 70 69 … … 80 79 /* grow the environment list if necessary */ 81 80 if (pamh->env_count == pamh->env_size) { 82 env = realloc(pamh->env,83 sizeof(char *) * (pamh->env_size * 2 + 1));81 env_size = pamh->env_size * 2 + 1; 82 env = realloc(pamh->env, sizeof(char *) * env_size); 84 83 if (env == NULL) 85 84 RETURNC(PAM_BUF_ERR); 86 85 pamh->env = env; 87 pamh->env_size = pamh->env_size * 2 + 1;86 pamh->env_size = env_size; 88 87 } 89 88 -
trunk/lib/libpam/pam_set_data.c
r648 r913 65 65 66 66 ENTERS(module_data_name); 67 if (pamh == NULL)68 RETURNC(PAM_SYSTEM_ERR);69 67 for (dp = pamh->module_data; dp != NULL; dp = dp->next) { 70 68 if (strcmp(dp->name, module_data_name) == 0) { -
trunk/lib/libpam/pam_set_item.c
r648 r913 65 65 66 66 ENTERI(item_type); 67 if (pamh == NULL)68 RETURNC(PAM_SYSTEM_ERR);69 67 slot = &pamh->item[item_type]; 70 68 osize = nsize = 0; -
trunk/lib/libpam/pam_setenv.c
r648 r913 66 66 67 67 ENTER(); 68 if (pamh == NULL)69 RETURNC(PAM_SYSTEM_ERR);70 68 71 69 /* sanity checks */ 72 if ( name == NULL || value == NULL|| strchr(name, '=') != NULL)70 if (*name == '\0' || strchr(name, '=') != NULL) 73 71 RETURNC(PAM_SYSTEM_ERR); 74 72 -
trunk/t/t_openpam_dispatch.c
r891 r913 48 48 const char *pam_return_so; 49 49 50 T_FUNC(null, "null handle")51 {52 int pam_err;53 54 #if __clang__55 #pragma clang diagnostic push56 #pragma clang diagnostic ignored "-Wnonnull"57 #elif __GNUC__58 #pragma GCC diagnostic push59 #pragma GCC diagnostic ignored "-Wnonnull"60 #endif61 pam_err = pam_authenticate(NULL, 0);62 #if __clang__63 #pragma clang diagnostic pop64 #elif __GNUC__65 #pragma GCC diagnostic pop66 #endif67 return (pam_err == PAM_SYSTEM_ERR);68 }69 70 50 T_FUNC(empty_policy, "empty policy") 71 51 { … … 82 62 t_fprintf(tf, "# empty policy\n"); 83 63 pam_err = pam_start(tf->name, "test", &pamc, &pamh); 84 t_verbose("pam_start() returned %d\n", pam_err); 64 if (pam_err != PAM_SUCCESS) { 65 t_verbose("pam_start() returned %d\n", pam_err); 66 return (0); 67 } 85 68 /* 86 69 * Note: openpam_dispatch() currently returns PAM_SYSTEM_ERR when … … 157 140 } 158 141 pam_err = pam_start(tf->name, "test", &pamc, &pamh); 159 t_verbose("pam_start() returned %d\n", pam_err); 160 if (pam_err != PAM_SUCCESS) 142 if (pam_err != PAM_SUCCESS) { 143 t_verbose("pam_start() returned %d\n", pam_err); 144 t_fclose(tf); 161 145 continue; 146 } 162 147 switch (tc->primitive) { 163 148 case PAM_SM_AUTHENTICATE: … … 194 179 195 180 static struct t_test *t_plan[] = { 196 T(null),197 181 T(empty_policy), 198 182 T(mod_return),
Note: See TracChangeset
for help on using the changeset viewer.