summaryrefslogtreecommitdiff
path: root/onlineupdate/source
diff options
context:
space:
mode:
authorMuhammet Kara <muhammet.kara@collabora.com>2020-02-16 21:12:10 +0300
committerMuhammet Kara <muhammet.kara@collabora.com>2020-02-16 22:32:47 +0100
commit1bc6f5868fd5e780e70f999144432f30d8f64149 (patch)
treec65a19d89852a743692305b18e586fc1428d2470 /onlineupdate/source
parent3f515b85e08872f1239e599c708fec6fe09a7b3a (diff)
Proper error check for fwrite in updater.cxx
A less-than-zero check for an unsigned value of type size_t doesn't make sense, and: If the return value of fwrite differs from the count parameter, it means that a writing error prevented the function from completing. In this case, the error indicator (ferror) will be set for the stream. Change-Id: I344e608b2bc03a4a117fc5cca1acb8e26eda247a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88817 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com>
Diffstat (limited to 'onlineupdate/source')
-rw-r--r--onlineupdate/source/update/updater/updater.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/onlineupdate/source/update/updater/updater.cxx b/onlineupdate/source/update/updater/updater.cxx
index 006e2ffe5a94..54750afb4218 100644
--- a/onlineupdate/source/update/updater/updater.cxx
+++ b/onlineupdate/source/update/updater/updater.cxx
@@ -731,8 +731,9 @@ static int ensure_copy(const NS_tchar *path, const NS_tchar *dest)
while (written < read)
{
- size_t chunkWritten = fwrite(buffer, 1, read - written, outfile);
- if (chunkWritten <= 0)
+ size_t nCount = read - written;
+ size_t chunkWritten = fwrite(buffer, 1, nCount, outfile);
+ if (chunkWritten != nCount)
{
LOG(("ensure_copy: failed to write the file: " LOG_S ", err: %d",
dest, errno));