diff --git a/src/common.cpp b/src/common.cpp index 65d34bd5c..7154f0ecb 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -189,7 +189,7 @@ static wcstring str2wcs_internal(const char *in, const size_t in_len) { mbstate_t state = {}; while (in_pos < in_len) { bool use_encode_direct = false; - size_t ret; + size_t ret = 0; wchar_t wc = 0; if ((in[in_pos] & 0xF8) == 0xF8) { diff --git a/src/env_universal_common.cpp b/src/env_universal_common.cpp index 9d45cb32e..14d8860be 100644 --- a/src/env_universal_common.cpp +++ b/src/env_universal_common.cpp @@ -570,7 +570,6 @@ bool env_universal_t::open_temporary_file(const wcstring &directory, wcstring *o assert(!string_suffixes_string(L"/", directory)); bool success = false; - int saved_errno; const wcstring tmp_name_template = directory + L"/fishd.tmp.XXXXXX"; wcstring tmp_name; @@ -587,16 +586,16 @@ bool env_universal_t::open_temporary_file(const wcstring &directory, wcstring *o } #endif - saved_errno = errno; success = result_fd != -1; *out_fd = result_fd; + + if (!success && attempt == 9) { + report_error(errno, L"Unable to open temporary file '%s'", narrow_str); + } + *out_path = str2wcstring(narrow_str); free(narrow_str); } - - if (!success) { - report_error(saved_errno, L"Unable to open file '%ls'", out_path->c_str()); - } return success; }