Fix core.download_file() creating empty files on HTTP error

master
rubenwardy 2019-02-03 17:30:33 +00:00
parent 809cb9fc0b
commit 9a071d66a5
1 changed files with 2 additions and 1 deletions

View File

@ -530,7 +530,6 @@ bool GUIEngine::downloadFile(const std::string &url, const std::string &target)
{ {
#if USE_CURL #if USE_CURL
std::ofstream target_file(target.c_str(), std::ios::out | std::ios::binary); std::ofstream target_file(target.c_str(), std::ios::out | std::ios::binary);
if (!target_file.good()) { if (!target_file.good()) {
return false; return false;
} }
@ -543,6 +542,8 @@ bool GUIEngine::downloadFile(const std::string &url, const std::string &target)
httpfetch_sync(fetch_request, fetch_result); httpfetch_sync(fetch_request, fetch_result);
if (!fetch_result.succeeded) { if (!fetch_result.succeeded) {
target_file.close();
fs::DeleteSingleFileOrEmptyDirectory(target);
return false; return false;
} }
target_file << fetch_result.data; target_file << fetch_result.data;