Merge "Permit 65535 byte ZIP comments and empty Central Directory" am: f420b91e26 am: be81b50b6e
am: e1bc33228e
Change-Id: I80c703f7784436414263fb86f56b7c85a6da40e7
This commit is contained in:
@@ -579,7 +579,7 @@ public class ApkSignatureSchemeV2Verifier {
|
|||||||
throws SignatureNotFoundException {
|
throws SignatureNotFoundException {
|
||||||
// Look up the offset of ZIP Central Directory.
|
// Look up the offset of ZIP Central Directory.
|
||||||
long centralDirOffset = ZipUtils.getZipEocdCentralDirectoryOffset(eocd);
|
long centralDirOffset = ZipUtils.getZipEocdCentralDirectoryOffset(eocd);
|
||||||
if (centralDirOffset >= eocdOffset) {
|
if (centralDirOffset > eocdOffset) {
|
||||||
throw new SignatureNotFoundException(
|
throw new SignatureNotFoundException(
|
||||||
"ZIP Central Directory offset out of range: " + centralDirOffset
|
"ZIP Central Directory offset out of range: " + centralDirOffset
|
||||||
+ ". ZIP End of Central Directory offset: " + eocdOffset);
|
+ ". ZIP End of Central Directory offset: " + eocdOffset);
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ abstract class ZipUtils {
|
|||||||
}
|
}
|
||||||
int maxCommentLength = Math.min(archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT16_MAX_VALUE);
|
int maxCommentLength = Math.min(archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT16_MAX_VALUE);
|
||||||
int eocdWithEmptyCommentStartPosition = archiveSize - ZIP_EOCD_REC_MIN_SIZE;
|
int eocdWithEmptyCommentStartPosition = archiveSize - ZIP_EOCD_REC_MIN_SIZE;
|
||||||
for (int expectedCommentLength = 0; expectedCommentLength < maxCommentLength;
|
for (int expectedCommentLength = 0; expectedCommentLength <= maxCommentLength;
|
||||||
expectedCommentLength++) {
|
expectedCommentLength++) {
|
||||||
int eocdStartPos = eocdWithEmptyCommentStartPosition - expectedCommentLength;
|
int eocdStartPos = eocdWithEmptyCommentStartPosition - expectedCommentLength;
|
||||||
if (zipContents.getInt(eocdStartPos) == ZIP_EOCD_REC_SIG) {
|
if (zipContents.getInt(eocdStartPos) == ZIP_EOCD_REC_SIG) {
|
||||||
|
|||||||
Reference in New Issue
Block a user