diff options
| author | 2018-10-12 14:53:20 +0000 | |
|---|---|---|
| committer | 2018-10-12 14:53:20 +0000 | |
| commit | f52fe5feedc71c58f566b8a13c0251ab01a15e5c (patch) | |
| tree | 9f56dfe2454bde5b09e5f0c5fb921c9b90da4f02 | |
| parent | 22f182d1b552df6bf8c2e59fff1fd228271025b9 (diff) | |
| parent | 42d96ce87ce846b2c752f616f94ad37086f73433 (diff) | |
Merge "ExifInterface: Fix checking possible overflow"
| -rw-r--r-- | media/java/android/media/ExifInterface.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java index 2395b24f7136..b96a5853b9dc 100644 --- a/media/java/android/media/ExifInterface.java +++ b/media/java/android/media/ExifInterface.java @@ -3252,7 +3252,7 @@ public class ExifInterface { int thumbnailLength = jpegInterchangeFormatLengthAttribute.getIntValue(mExifByteOrder); // The following code limits the size of thumbnail size not to overflow EXIF data area. - thumbnailLength = Math.min(thumbnailLength, in.available() - thumbnailOffset); + thumbnailLength = Math.min(thumbnailLength, in.getLength() - thumbnailOffset); if (mMimeType == IMAGE_TYPE_JPEG || mMimeType == IMAGE_TYPE_RAF || mMimeType == IMAGE_TYPE_RW2) { thumbnailOffset += mExifOffset; @@ -3981,6 +3981,10 @@ public class ExifInterface { public double readDouble() throws IOException { return Double.longBitsToDouble(readLong()); } + + public int getLength() { + return mLength; + } } // An output stream to write EXIF data area, which can be written in either little or big endian |