From: Victor Hsieh Date: Fri, 19 Jan 2018 20:46:23 +0000 (-0800) Subject: Fix buffer overflow when the last chunk is 4kb X-Git-Tag: android-x86-9.0-r1~257^2~31^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b62a64e078cda3a34712711480864546c334d86e;p=android-x86%2Fframeworks-base.git Fix buffer overflow when the last chunk is 4kb Test: adb install GtsNetStatsTestCases.apk # works only w/ the patch Bug: 72189232 Bug: 30972906 Change-Id: I9f01279d783dd5adf31cfda4abd452240ad25ca3 --- diff --git a/core/java/android/util/apk/ApkVerityBuilder.java b/core/java/android/util/apk/ApkVerityBuilder.java index 7412ef411fb4..a0d5e4c2dd8e 100644 --- a/core/java/android/util/apk/ApkVerityBuilder.java +++ b/core/java/android/util/apk/ApkVerityBuilder.java @@ -164,11 +164,11 @@ abstract class ApkVerityBuilder { } private void fillUpLastOutputChunk() { - int extra = (int) (BUFFER_SIZE - mOutput.position() % BUFFER_SIZE); - if (extra == 0) { + int lastBlockSize = (int) (mOutput.position() % BUFFER_SIZE); + if (lastBlockSize == 0) { return; } - mOutput.put(ByteBuffer.allocate(extra)); + mOutput.put(ByteBuffer.allocate(BUFFER_SIZE - lastBlockSize)); } }