diff options
author | Riccardo Spagni <ric@spagni.net> | 2019-06-14 16:19:45 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2019-06-14 16:19:45 +0200 |
commit | 1d5e8f461de0a04891e5e18b0f50e9cf2cf534e1 (patch) | |
tree | 196a29f8b13f0a26167d5ec085669002d468323a /src/serialization/binary_archive.h | |
parent | Merge pull request #5632 (diff) | |
parent | rpc: restrict the recent cutoff size in restricted RPC mode (diff) | |
download | monero-1d5e8f461de0a04891e5e18b0f50e9cf2cf534e1.tar.xz |
Merge pull request #5639
2eef90d6 rpc: restrict the recent cutoff size in restricted RPC mode (moneromooo-monero)
0564da5f ensure no NULL is passed to memcpy (moneromooo-monero)
bc09766b abstract_tcp_server2: improve DoS resistance (moneromooo-monero)
1387549e serialization: check stream good flag at the end (moneromooo-monero)
a00cabd4 tree-hash: allocate variable memory on heap, not stack (moneromooo-monero)
f2152192 cryptonote: throw on tx hash calculation error (moneromooo-monero)
db2b9fba serialization: fail on read_varint error (moneromooo-monero)
68ad5481 cryptonote_protocol: fix another potential P2P DoS (moneromooo-monero)
1cc61018 cryptonote_protocol: expand basic DoS protection (moneromooo-monero)
8f66b705 cryptonote_protocol_handler: prevent potential DoS (anonimal)
39169ace epee: basic sanity check on allocation size from untrusted source (moneromooo-monero)
Diffstat (limited to 'src/serialization/binary_archive.h')
-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) |