diff --git a/src/herder/HerderPersistenceImpl.cpp b/src/herder/HerderPersistenceImpl.cpp index 62c56e457b..c77361507a 100644 --- a/src/herder/HerderPersistenceImpl.cpp +++ b/src/herder/HerderPersistenceImpl.cpp @@ -366,6 +366,12 @@ HerderPersistence::getQuorumSet(soci::session& sess, Hash const& qSetHash) std::vector qSetBytes; decoder::decode_b64(qset64, qSetBytes); + if (qSetBytes.empty()) + { + throw std::runtime_error( + "corrupt database: empty quorum set blob"); + } + xdr::xdr_get g1(&qSetBytes.front(), &qSetBytes.back() + 1); xdr_argpack_archive(g1, qset);