Skip to content

Commit c7db88a

Browse files
committed
descriptor: assert we never parse a sane miniscript with no pubkey
1 parent a49402a commit c7db88a

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Diff for: src/script/descriptor.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <common/args.h>
1616
#include <span.h>
1717
#include <util/bip32.h>
18+
#include <util/check.h>
1819
#include <util/spanparsing.h>
1920
#include <util/strencodings.h>
2021
#include <util/vector.h>
@@ -1566,6 +1567,9 @@ std::unique_ptr<DescriptorImpl> ParseScript(uint32_t& key_exp_index, Span<const
15661567
}
15671568
return nullptr;
15681569
}
1570+
// A signature check is required for a miniscript to be sane. Therefore no sane miniscript
1571+
// may have an empty list of public keys.
1572+
CHECK_NONFATAL(!parser.m_keys.empty());
15691573
return std::make_unique<MiniscriptDescriptor>(std::move(parser.m_keys), std::move(node));
15701574
}
15711575
}

0 commit comments

Comments
 (0)