|
|
@ -273,7 +273,7 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, un |
|
|
|
return set_error(serror, SCRIPT_ERR_PUSH_SIZE); |
|
|
|
return set_error(serror, SCRIPT_ERR_PUSH_SIZE); |
|
|
|
|
|
|
|
|
|
|
|
// Note how OP_RESERVED does not count towards the opcode limit.
|
|
|
|
// Note how OP_RESERVED does not count towards the opcode limit.
|
|
|
|
if (opcode > OP_16 && ++nOpCount > 201) |
|
|
|
if (opcode > OP_16 && ++nOpCount > MAX_OPS_PER_SCRIPT) |
|
|
|
return set_error(serror, SCRIPT_ERR_OP_COUNT); |
|
|
|
return set_error(serror, SCRIPT_ERR_OP_COUNT); |
|
|
|
|
|
|
|
|
|
|
|
if (opcode == OP_CAT || |
|
|
|
if (opcode == OP_CAT || |
|
|
@ -869,10 +869,10 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, un |
|
|
|
return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION); |
|
|
|
return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION); |
|
|
|
|
|
|
|
|
|
|
|
int nKeysCount = CScriptNum(stacktop(-i), fRequireMinimal).getint(); |
|
|
|
int nKeysCount = CScriptNum(stacktop(-i), fRequireMinimal).getint(); |
|
|
|
if (nKeysCount < 0 || nKeysCount > 20) |
|
|
|
if (nKeysCount < 0 || nKeysCount > MAX_PUBKEYS_PER_MULTISIG) |
|
|
|
return set_error(serror, SCRIPT_ERR_PUBKEY_COUNT); |
|
|
|
return set_error(serror, SCRIPT_ERR_PUBKEY_COUNT); |
|
|
|
nOpCount += nKeysCount; |
|
|
|
nOpCount += nKeysCount; |
|
|
|
if (nOpCount > 201) |
|
|
|
if (nOpCount > MAX_OPS_PER_SCRIPT) |
|
|
|
return set_error(serror, SCRIPT_ERR_OP_COUNT); |
|
|
|
return set_error(serror, SCRIPT_ERR_OP_COUNT); |
|
|
|
int ikey = ++i; |
|
|
|
int ikey = ++i; |
|
|
|
i += nKeysCount; |
|
|
|
i += nKeysCount; |
|
|
|