summaryrefslogtreecommitdiffstats
path: root/libdex/DexSwapVerify.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libdex/DexSwapVerify.cpp')
-rw-r--r--libdex/DexSwapVerify.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/libdex/DexSwapVerify.cpp b/libdex/DexSwapVerify.cpp
index 4b3cf4493..6cc139dcf 100644
--- a/libdex/DexSwapVerify.cpp
+++ b/libdex/DexSwapVerify.cpp
@@ -911,6 +911,11 @@ static void* swapClassDefItem(const CheckState* state, void* ptr) {
SWAP_OFFSET4(item->annotationsOff);
SWAP_OFFSET4(item->classDataOff);
+ if ((item->accessFlags & ~ACC_CLASS_MASK) != 0) {
+ ALOGE("Bogus class access flags %x", item->accessFlags);
+ return NULL;
+ }
+
return item + 1;
}