diff --exclude-from=exclude -N -u -r nsalibsemanage/src/genhomedircon.c libsemanage-2.0.14/src/genhomedircon.c --- nsalibsemanage/src/genhomedircon.c 2007-10-05 13:09:53.000000000 -0400 +++ libsemanage-2.0.14/src/genhomedircon.c 2007-12-03 15:47:19.000000000 -0500 @@ -130,11 +130,13 @@ char *temp = NULL; semanage_list_t *list = NULL; size_t buff_len = 0; + int len; shells = fopen(PATH_SHELLS_FILE, "r"); if (!shells) return default_shell_list(); - while (getline(&temp, &buff_len, shells) >= 0) { + while ((len = getline(&temp, &buff_len, shells)) > 0) { + if (temp[len-1] == '\n') temp[len-1] = 0; if (strcmp(temp, PATH_NOLOGIN_SHELL)) { if (semanage_list_push(&list, temp)) { free(temp); @@ -790,7 +792,7 @@ homedir_context_tpl = make_template(s, &HOME_DIR_PRED); homeroot_context_tpl = make_template(s, &HOME_ROOT_PRED); user_context_tpl = make_template(s, &USER_CONTEXT_PRED); - if (!homedir_context_tpl || !homeroot_context_tpl || !user_context_tpl) { + if (!homedir_context_tpl || !homeroot_context_tpl) { retval = STATUS_ERR; goto done; } @@ -828,16 +830,18 @@ ustr_sc_free(&temp); } - if (write_user_context(s, out, user_context_tpl, - ".*", s->fallback_user, - s->fallback_user_prefix) != STATUS_SUCCESS) { - retval = STATUS_ERR; - goto done; - } + if (user_context_tpl) { + if (write_user_context(s, out, user_context_tpl, + ".*", s->fallback_user, + s->fallback_user_prefix) != STATUS_SUCCESS) { + retval = STATUS_ERR; + goto done; + } - if (write_gen_home_dir_context(s, out, user_context_tpl, - homedir_context_tpl) != STATUS_SUCCESS) { - retval = STATUS_ERR; + if (write_gen_home_dir_context(s, out, user_context_tpl, + homedir_context_tpl) != STATUS_SUCCESS) { + retval = STATUS_ERR; + } } done: diff --exclude-from=exclude -N -u -r nsalibsemanage/src/handle.c libsemanage-2.0.14/src/handle.c --- nsalibsemanage/src/handle.c 2007-08-20 19:15:37.000000000 -0400 +++ libsemanage-2.0.14/src/handle.c 2007-11-10 06:21:33.000000000 -0500 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include "direct_api.h" @@ -131,7 +132,7 @@ /* This just sets the storename to what the user requests, no verification of existance will be done until connect */ - sh->conf->store_path = storename; + sh->conf->store_path = strdup(storename); sh->conf->store_type = storetype; return; diff --exclude-from=exclude -N -u -r nsalibsemanage/src/semanage.conf libsemanage-2.0.15/src/semanage.conf --- nsalibsemanage/src/semanage.conf 2007-07-16 14:20:38.000000000 -0400 +++ libsemanage-2.0.15/src/semanage.conf 2008-01-25 10:28:39.000000000 -0500 @@ -35,4 +35,4 @@ # given in . Change this setting if a different # version is necessary. #policy-version = 19 - +expand-check=0