*/
#define CHECK_INDEX(_field, _limit) { \
if ((_field) >= (_limit)) { \
- ALOGW("Bad index: %s(%u) > %s(%u)", \
+ ALOGW("Bad index: %s(%u) > %s(%u)", \
#_field, (u4)(_field), #_limit, (u4)(_limit)); \
return 0; \
} \
*/
#define CHECK_INDEX_OR_NOINDEX(_field, _limit) { \
if ((_field) != kDexNoIndex && (_field) >= (_limit)) { \
- ALOGW("Bad index: %s(%u) > %s(%u)", \
+ ALOGW("Bad index: %s(%u) > %s(%u)", \
#_field, (u4)(_field), #_limit, (u4)(_limit)); \
return 0; \
} \
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;
}
if (item->triesSize == 0) {
ptr = insns;
} else {
- if ((((u4) insns) & 3) != 0) {
+ if ((((uintptr_t) insns) & 3) != 0) {
// Four-byte alignment for the tries. Verify the spacer is a 0.
if (*insns != 0) {
ALOGE("Non-zero padding: %#x", (u4) *insns);