summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-08-07 22:37:00 -0400
committerGitHub <noreply@github.com>2018-08-07 22:37:00 -0400
commit80cfd88e4ec5d2862227dedef5b9f709a8350319 (patch)
treed6fc13f86efe54ca4a6aec0c5a95ca56c5ca42cf /src
parent825e8cb9252cdffd3f150ef667ecb95655ab0696 (diff)
parent0735a0c8a11e62bbe0c7bed52c7c8a9a861b5ce4 (diff)
Merge pull request #967 from lioncash/sign
file_util: Avoid sign-conversions in WriteArray() and ReadArray()
Diffstat (limited to 'src')
-rw-r--r--src/common/file_util.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/common/file_util.h b/src/common/file_util.h
index 28697d527..430dac41c 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -8,6 +8,7 @@
#include <cstdio>
#include <fstream>
#include <functional>
+#include <limits>
#include <string>
#include <string_view>
#include <type_traits>
@@ -210,8 +211,9 @@ public:
static_assert(std::is_trivially_copyable<T>(),
"Given array does not consist of trivially copyable objects");
- if (!IsOpen())
- return -1;
+ if (!IsOpen()) {
+ return std::numeric_limits<size_t>::max();
+ }
return std::fread(data, sizeof(T), length, m_file);
}
@@ -220,8 +222,10 @@ public:
size_t WriteArray(const T* data, size_t length) {
static_assert(std::is_trivially_copyable<T>(),
"Given array does not consist of trivially copyable objects");
- if (!IsOpen())
- return -1;
+ if (!IsOpen()) {
+ return std::numeric_limits<size_t>::max();
+ }
+
return std::fwrite(data, sizeof(T), length, m_file);
}