diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2019-03-11 23:36:17 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2019-06-14 08:48:10 +0000 |
commit | d6bb9ecc6fe618840417df45f750dfb584cb549e (patch) | |
tree | 123884607982431cad4e842ffb8e6b5b861f139a | |
parent | cryptonote_protocol: fix another potential P2P DoS (diff) | |
download | monero-d6bb9ecc6fe618840417df45f750dfb584cb549e.tar.xz |
serialization: fail on read_varint error
-rw-r--r-- | src/serialization/binary_archive.h | 3 |
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) |