Merge pull request #6183

3813a992 download: catch exceptions checking for size (moneromooo-monero)
This commit is contained in:
Alexander Blair 2020-02-06 00:34:58 -08:00
commit bd4acbf44c
No known key found for this signature in database
GPG Key ID: C64552D877C32479

View File

@ -107,13 +107,17 @@ namespace tools
MINFO("Content-Length: " << length); MINFO("Content-Length: " << length);
content_length = length; content_length = length;
boost::filesystem::path path(control->path); boost::filesystem::path path(control->path);
boost::filesystem::space_info si = boost::filesystem::space(path); try
if (si.available < (size_t)content_length)
{ {
const uint64_t avail = (si.available + 1023) / 1024, needed = (content_length + 1023) / 1024; boost::filesystem::space_info si = boost::filesystem::space(path);
MERROR("Not enough space to download " << needed << " kB to " << path << " (" << avail << " kB available)"); if (si.available < (size_t)content_length)
return false; {
const uint64_t avail = (si.available + 1023) / 1024, needed = (content_length + 1023) / 1024;
MERROR("Not enough space to download " << needed << " kB to " << path << " (" << avail << " kB available)");
return false;
}
} }
catch (const std::exception &e) { MWARNING("Failed to check for free space: " << e.what()); }
} }
if (offset > 0) if (offset > 0)
{ {