Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82bf99bb authored by Alex Klyubin's avatar Alex Klyubin
Browse files

Fix two cosmetic issues in signapk.

* Zip EoCD record comment length was referred to as 32-bit whereas it
  is a 16-bit field. The implementation was fine, but the comment and
  the naming of a constant were wrong.
* System.out.println was left over from early prototyping days.
  Removed.

Bug: 25794543
Change-Id: I97199310d4b4451271a75bb6c6d0463e0b788be9
parent 0314519b
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ public abstract class ZipUtils {
    private static final int ZIP64_EOCD_LOCATOR_SIZE = 20;
    private static final int ZIP64_EOCD_LOCATOR_SIG = 0x07064b50;

    private static final int UINT32_MAX_VALUE = 0xffff;
    private static final int UINT16_MAX_VALUE = 0xffff;

    /**
     * Returns the position at which ZIP End of Central Directory record starts in the provided
@@ -56,14 +56,13 @@ public abstract class ZipUtils {
        // end of the buffer for the EOCD record signature. Whenever we find a signature, we check
        // the candidate record's comment length is such that the remainder of the record takes up
        // exactly the remaining bytes in the buffer. The search is bounded because the maximum
        // size of the comment field is 65535 bytes because the field is an unsigned 32-bit number.
        // size of the comment field is 65535 bytes because the field is an unsigned 16-bit number.

        int archiveSize = zipContents.capacity();
        if (archiveSize < ZIP_EOCD_REC_MIN_SIZE) {
            System.out.println("File size smaller than EOCD min size");
            return -1;
        }
        int maxCommentLength = Math.min(archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT32_MAX_VALUE);
        int maxCommentLength = Math.min(archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT16_MAX_VALUE);
        int eocdWithEmptyCommentStartPosition = archiveSize - ZIP_EOCD_REC_MIN_SIZE;
        for (int expectedCommentLength = 0; expectedCommentLength < maxCommentLength;
                expectedCommentLength++) {