aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2019-03-11 23:36:17 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2019-06-14 08:48:10 +0000
commitd6bb9ecc6fe618840417df45f750dfb584cb549e (patch)
tree123884607982431cad4e842ffb8e6b5b861f139a
parentcryptonote_protocol: fix another potential P2P DoS (diff)
downloadmonero-d6bb9ecc6fe618840417df45f750dfb584cb549e.tar.xz
serialization: fail on read_varint error
-rw-r--r--src/serialization/binary_archive.h3
1 files changed, 2 insertions, 1 deletions
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<false> : public binary_archive_base<std::istream, false>
void serialize_uvarint(T &v)
{
typedef std::istreambuf_iterator<char> 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)