Fix zero-len slice translations (#12642)

This commit is contained in:
Jack May
2020-10-02 17:45:39 -07:00
committed by GitHub
parent 0ef3cac1f8
commit d0aa8a6446
6 changed files with 48 additions and 0 deletions

View File

@ -115,6 +115,18 @@ extern uint64_t entrypoint(const uint8_t *input) {
sol_invoke(&instruction, accounts, SOL_ARRAY_SIZE(accounts)));
}
sol_log("Test no instruction data");
{
SolAccountMeta arguments[] = {{accounts[ARGUMENT_INDEX].key, true, true}};
uint8_t data[] = {};
const SolInstruction instruction = {accounts[INVOKED_PROGRAM_INDEX].key,
arguments, SOL_ARRAY_SIZE(arguments),
data, SOL_ARRAY_SIZE(data)};
sol_assert(SUCCESS ==
sol_invoke(&instruction, accounts, SOL_ARRAY_SIZE(accounts)));
}
sol_log("Test return error");
{
SolAccountMeta arguments[] = {{accounts[ARGUMENT_INDEX].key, true, true}};

View File

@ -12,6 +12,10 @@ extern uint64_t entrypoint(const uint8_t *input) {
return ERROR_INVALID_ARGUMENT;
}
if (params.data_len == 0) {
return SUCCESS;
}
switch (params.data[0]) {
case TEST_VERIFY_TRANSLATIONS: {
sol_log("verify data translations");