diff options
-rw-r--r-- | runtime/verifier/method_verifier.cc | 4 | ||||
-rw-r--r-- | tools/fuzzer/class-verifier-corpus/b360767178.dex | bin | 0 -> 2400 bytes |
2 files changed, 4 insertions, 0 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc index 383785387a..fccb60b3e6 100644 --- a/runtime/verifier/method_verifier.cc +++ b/runtime/verifier/method_verifier.cc @@ -4311,6 +4311,10 @@ void MethodVerifier<kVerifierDebug>::VerifyNewArray(const Instruction* inst, for (size_t ui = 0; ui < arg_count; ui++) { uint32_t get_reg = is_range ? inst->VRegC_3rc() + ui : arg[ui]; work_line_->VerifyRegisterType(this, get_reg, expected_type); + if (flags_.have_pending_hard_failure_) { + // Don't continue on hard failures. + return; + } } // filled-array result goes into "result" register const RegType& precise_type = reg_types_.FromUninitialized(res_type); diff --git a/tools/fuzzer/class-verifier-corpus/b360767178.dex b/tools/fuzzer/class-verifier-corpus/b360767178.dex Binary files differnew file mode 100644 index 0000000000..29f02a7d5f --- /dev/null +++ b/tools/fuzzer/class-verifier-corpus/b360767178.dex |