From db2b9fba651670a9c8f86c316f36bc9d9dbb82cc Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Mon, 11 Mar 2019 23:36:17 +0000 Subject: serialization: fail on read_varint error --- src/serialization/binary_archive.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/serialization') diff --git a/src/serialization/binary_archive.h b/src/serialization/binary_archive.h index a0e4eff9d..9f60cf311 100644 --- a/src/serialization/binary_archive.h +++ b/src/serialization/binary_archive.h @@ -146,7 +146,8 @@ struct binary_archive : public binary_archive_base void serialize_uvarint(T &v) { typedef std::istreambuf_iterator it; - tools::read_varint(it(stream_), it(), v); // XXX handle failure + if (tools::read_varint(it(stream_), it(), v) < 0) + stream_.setstate(std::ios_base::failbit); } void begin_array(size_t &s) -- cgit v1.2.3 From 1387549e905fc206426d3099b069bd28df0aad71 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Tue, 16 Apr 2019 18:48:40 +0000 Subject: serialization: check stream good flag at the end just in case --- src/serialization/serialization.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/serialization') diff --git a/src/serialization/serialization.h b/src/serialization/serialization.h index 007bf265f..553e9951f 100644 --- a/src/serialization/serialization.h +++ b/src/serialization/serialization.h @@ -212,7 +212,7 @@ inline bool do_serialize(Archive &ar, bool &v) * \brief self-explanatory */ #define END_SERIALIZE() \ - return true; \ + return ar.stream().good(); \ } /*! \macro VALUE(f) -- cgit v1.2.3