diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2013-04-25 13:10:53 -0700 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2013-04-25 13:10:53 -0700 |
commit | 5e29fc8b8bbcbeab012587b119ba47a6c647db83 (patch) | |
tree | da10745ec76a854189453f6a18bd714e5c993b42 /gallerycommon/src/com/android/gallery3d/exif/ExifTag.java | |
parent | a63fa601615a1b5ca465fcd0ee327ceaa8e05570 (diff) | |
download | android_packages_apps_Snap-5e29fc8b8bbcbeab012587b119ba47a6c647db83.tar.gz android_packages_apps_Snap-5e29fc8b8bbcbeab012587b119ba47a6c647db83.tar.bz2 android_packages_apps_Snap-5e29fc8b8bbcbeab012587b119ba47a6c647db83.zip |
Fix offset and ASCII type handling in exif.
Bug: 8713891
Change-Id: I8adaf1bc42eea2cda741d149de5f1a64c3e4c74c
Diffstat (limited to 'gallerycommon/src/com/android/gallery3d/exif/ExifTag.java')
-rw-r--r-- | gallerycommon/src/com/android/gallery3d/exif/ExifTag.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/exif/ExifTag.java b/gallerycommon/src/com/android/gallery3d/exif/ExifTag.java index 24e7f5313..b8b387201 100644 --- a/gallerycommon/src/com/android/gallery3d/exif/ExifTag.java +++ b/gallerycommon/src/com/android/gallery3d/exif/ExifTag.java @@ -330,8 +330,13 @@ public class ExifTag { } byte[] buf = value.getBytes(US_ASCII); - byte[] finalBuf = (buf[buf.length - 1] == 0 || mDataType == TYPE_UNDEFINED) ? buf : Arrays + byte[] finalBuf = buf; + if (buf.length > 0) { + finalBuf = (buf[buf.length - 1] == 0 || mDataType == TYPE_UNDEFINED) ? buf : Arrays .copyOf(buf, buf.length + 1); + } else if (mDataType == TYPE_ASCII && mComponentCountActual == 1) { + finalBuf = new byte[] { 0 }; + } int count = finalBuf.length; if (checkBadComponentCount(count)) { return false; @@ -870,6 +875,10 @@ public class ExifTag { mHasDefinedDefaultComponentCount = d; } + protected boolean hasDefinedCount() { + return mHasDefinedDefaultComponentCount; + } + private boolean checkBadComponentCount(int count) { if (mHasDefinedDefaultComponentCount && (mComponentCountActual != count)) { return true; |