ResStringPool: Prevenet boot loop from se fix
Changes the logs adding in a previous security fix to warnings so
devices with malformed APKs currently on them will not undergo DOS when
they are upgraded to P.
Bug: 79724567
Test: run cts -m CtsAppSecurityHostTestCases \
-t android.appsecurity.cts.CorruptApkTests
Change-Id: Ied54e4bb14abdaf79da562022c7ea6075187c1f8
(cherry picked from commit f05f47b2c1)
This commit is contained in:
@@ -457,7 +457,7 @@ status_t ResStringPool::setTo(const void* data, size_t size, bool copyData)
|
|||||||
|
|
||||||
// The chunk must be at least the size of the string pool header.
|
// The chunk must be at least the size of the string pool header.
|
||||||
if (size < sizeof(ResStringPool_header)) {
|
if (size < sizeof(ResStringPool_header)) {
|
||||||
LOG_ALWAYS_FATAL("Bad string block: data size %zu is too small to be a string block", size);
|
ALOGW("Bad string block: data size %zu is too small to be a string block", size);
|
||||||
return (mError=BAD_TYPE);
|
return (mError=BAD_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -467,7 +467,7 @@ status_t ResStringPool::setTo(const void* data, size_t size, bool copyData)
|
|||||||
if (validate_chunk(reinterpret_cast<const ResChunk_header*>(data), sizeof(ResStringPool_header),
|
if (validate_chunk(reinterpret_cast<const ResChunk_header*>(data), sizeof(ResStringPool_header),
|
||||||
reinterpret_cast<const uint8_t*>(data) + size,
|
reinterpret_cast<const uint8_t*>(data) + size,
|
||||||
"ResStringPool_header") != NO_ERROR) {
|
"ResStringPool_header") != NO_ERROR) {
|
||||||
LOG_ALWAYS_FATAL("Bad string block: malformed block dimensions");
|
ALOGW("Bad string block: malformed block dimensions");
|
||||||
return (mError=BAD_TYPE);
|
return (mError=BAD_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user