Browse Source

Improve handling when writing to temporary files

Let QTemporaryFile remove incomplete written file when error occurs.
"XXXXXX" template is not strictly required according to Qt doc.
adaptive-webui-19844
Chocobo1 3 years ago
parent
commit
9673be17cb
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 11
      src/base/net/downloadhandlerimpl.cpp

11
src/base/net/downloadhandlerimpl.cpp

@ -46,14 +46,13 @@ namespace @@ -46,14 +46,13 @@ namespace
if (!filePath.isEmpty())
return Utils::IO::saveToFile(filePath, replyData).has_value();
QTemporaryFile tmpfile {Utils::Fs::tempPath() + "XXXXXX"};
tmpfile.setAutoRemove(false);
if (!tmpfile.open())
QTemporaryFile file {Utils::Fs::tempPath()};
if (!file.open() || (file.write(replyData) != replyData.length()) || !file.flush())
return false;
filePath = tmpfile.fileName();
return (tmpfile.write(replyData) == replyData.length());
file.setAutoRemove(false);
filePath = file.fileName();
return true;
}
}

Loading…
Cancel
Save