summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/verifier/method_verifier.cc6
-rw-r--r--tools/fuzzer/class-verifier-corpus/b391852978.dexbin0 -> 2736 bytes
2 files changed, 5 insertions, 1 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index bf5ec7b745..06b95428cc 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -4501,7 +4501,11 @@ bool MethodVerifierImpl::CheckCallSite(uint32_t call_site_idx) {
<< index[i] << " >= " << type_and_max[i].second;
return false;
}
- it.Next();
+
+ // Don't increase if we are going to read past the item.
+ if (i != kRequiredArguments - 1) {
+ it.Next();
+ }
}
// Check method handle kind is valid.
diff --git a/tools/fuzzer/class-verifier-corpus/b391852978.dex b/tools/fuzzer/class-verifier-corpus/b391852978.dex
new file mode 100644
index 0000000000..5f21123335
--- /dev/null
+++ b/tools/fuzzer/class-verifier-corpus/b391852978.dex
Binary files differ