summaryrefslogtreecommitdiffstats
path: root/gallerycommon/src/com/android/gallery3d/exif/ExifTag.java
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2013-04-25 13:10:53 -0700
committerRuben Brunk <rubenbrunk@google.com>2013-04-25 13:10:53 -0700
commit310ef8d4745a15f04e647b834a7d94e9dc7e1cab (patch)
treeb3a09563fe0e43dfc78b0212bf4d95e4913929ac /gallerycommon/src/com/android/gallery3d/exif/ExifTag.java
parentd1e0a6e78d686cdc259a2978e988cdd734ca6a2f (diff)
downloadandroid_packages_apps_Snap-310ef8d4745a15f04e647b834a7d94e9dc7e1cab.tar.gz
android_packages_apps_Snap-310ef8d4745a15f04e647b834a7d94e9dc7e1cab.tar.bz2
android_packages_apps_Snap-310ef8d4745a15f04e647b834a7d94e9dc7e1cab.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.java11
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;