size_t linesize = 0;
debug_decl(sudo_conf_read, SUDO_DEBUG_UTIL)
- prev_locale = strdup(setlocale(LC_ALL, NULL));
- if (prev_locale == NULL) {
+ if ((prev_locale = setlocale(LC_ALL, NULL)) == NULL) {
+ sudo_warn("setlocale(LC_ALL, NULL)");
+ debug_return_int(-1);
+ }
+ if ((prev_locale = strdup(prev_locale)) == NULL) {
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
debug_return_int(-1);
}
current_locale = SUDOERS_LOCALE_USER;
res = setlocale(LC_ALL, user_locale ? user_locale : "");
if (res != NULL && user_locale == NULL) {
- user_locale = strdup(setlocale(LC_ALL, NULL));
+ user_locale = setlocale(LC_ALL, NULL);
+ if (user_locale != NULL)
+ user_locale = strdup(user_locale);
if (user_locale == NULL)
res = NULL;
}