ART: Fail dex file verification on invalid access flags

Only allow standard java access flags in class-def items.

Bug: 16018234
Change-Id: I54e788817d5974faf7b3841cd01b9ca4568249c1
diff --git a/runtime/dex_file_verifier.cc b/runtime/dex_file_verifier.cc
index 291e2d0..00e05fc 100644
--- a/runtime/dex_file_verifier.cc
+++ b/runtime/dex_file_verifier.cc
@@ -1650,6 +1650,12 @@
     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;