I noticed that the following mutant is not killed by any current test (can be tested with: cmake --build build -j $(nproc) && ./build/bin/test_bitcoin && ./build/test/functional/test_runner.py -j $(nproc) -F):
0diff --git a/src/script/script.cpp b/src/script/script.cpp
1index 3f764aaf21..5cff51d2cf 100644
2--- a/src/script/script.cpp
3+++ b/src/script/script.cpp
4@@ -387,7 +387,7 @@ bool CheckMinimalPush(const std::vector<unsigned char>& data, opcodetype opcode)
5 } else if (data.size() <= 255) {
6 // Must have used OP_PUSHDATA.
7 return opcode == OP_PUSHDATA1;
8- } else if (data.size() <= 65535) {
9+ } else if (data.size() < 65535) {
10 // Must have used OP_PUSHDATA2.
11 return opcode == OP_PUSHDATA2;
12 }
This PR addresses it by adding a new test case to ensure that the boundary at exactly 65535 bytes must use OP_PUSHDATA2 as well.