Skip to content

Commit fa694f7

Browse files
author
MarcoFalke
committed
test: Add tests for truncated scripts
1 parent 6d0a147 commit fa694f7

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/test/script_tests.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,6 +1030,28 @@ BOOST_AUTO_TEST_CASE(script_PushData)
10301030
BOOST_CHECK(EvalScript(pushdata4Stack, CScript(pushdata4, pushdata4 + sizeof(pushdata4)), SCRIPT_VERIFY_P2SH, BaseSignatureChecker(), SigVersion::BASE, &err));
10311031
BOOST_CHECK(pushdata4Stack == directStack);
10321032
BOOST_CHECK_MESSAGE(err == SCRIPT_ERR_OK, ScriptErrorString(err));
1033+
1034+
const std::vector<unsigned char> pushdata1_trunc{OP_PUSHDATA1, 1};
1035+
const std::vector<unsigned char> pushdata2_trunc{OP_PUSHDATA2, 1, 0};
1036+
const std::vector<unsigned char> pushdata4_trunc{OP_PUSHDATA4, 1, 0, 0, 0};
1037+
1038+
std::vector<std::vector<unsigned char>> stack_ignore;
1039+
BOOST_CHECK(!EvalScript(stack_ignore, CScript(pushdata1_trunc.begin(), pushdata1_trunc.end()), SCRIPT_VERIFY_P2SH, BaseSignatureChecker(), SigVersion::BASE, &err));
1040+
BOOST_CHECK_EQUAL(err, SCRIPT_ERR_BAD_OPCODE);
1041+
BOOST_CHECK(!EvalScript(stack_ignore, CScript(pushdata2_trunc.begin(), pushdata2_trunc.end()), SCRIPT_VERIFY_P2SH, BaseSignatureChecker(), SigVersion::BASE, &err));
1042+
BOOST_CHECK_EQUAL(err, SCRIPT_ERR_BAD_OPCODE);
1043+
BOOST_CHECK(!EvalScript(stack_ignore, CScript(pushdata4_trunc.begin(), pushdata4_trunc.end()), SCRIPT_VERIFY_P2SH, BaseSignatureChecker(), SigVersion::BASE, &err));
1044+
BOOST_CHECK_EQUAL(err, SCRIPT_ERR_BAD_OPCODE);
1045+
}
1046+
1047+
BOOST_AUTO_TEST_CASE(script_cltv_truncated)
1048+
{
1049+
const auto script_cltv_trunc = CScript() << OP_CHECKLOCKTIMEVERIFY;
1050+
1051+
std::vector<std::vector<unsigned char>> stack_ignore;
1052+
ScriptError err;
1053+
BOOST_CHECK(!EvalScript(stack_ignore, script_cltv_trunc, SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY, BaseSignatureChecker(), SigVersion::BASE, &err));
1054+
BOOST_CHECK_EQUAL(err, SCRIPT_ERR_INVALID_STACK_OPERATION);
10331055
}
10341056

10351057
static CScript

0 commit comments

Comments
 (0)