diff options
| -rw-r--r-- | runtime/dex_file_verifier.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/dex_file_verifier.cc b/runtime/dex_file_verifier.cc index 291e2d0756..00e05fc488 100644 --- a/runtime/dex_file_verifier.cc +++ b/runtime/dex_file_verifier.cc @@ -1650,6 +1650,12 @@ bool DexFileVerifier::CheckInterClassDefItem() { return false; } + // Only allow non-runtime modifiers. + if ((item->access_flags_ & ~kAccJavaFlagsMask) != 0) { + ErrorStringPrintf("Invalid class flags: '%d'", item->access_flags_); + return false; + } + if (item->interfaces_off_ != 0 && !CheckOffsetToTypeMap(item->interfaces_off_, DexFile::kDexTypeTypeList)) { return false; |