OSDN Git Service

Handle overflow in android::HeifDataSource::readAt
authorSungtak Lee <taklee@google.com>
Mon, 5 Mar 2018 23:21:33 +0000 (15:21 -0800)
committerJP Sugarbroad <jpsugar@google.com>
Thu, 15 Mar 2018 20:02:47 +0000 (13:02 -0700)
Bug: 73782357
Change-Id: I03a5b4c5ddaf2664f342973da7f1a79f29cd7be5
(cherry picked from commit 237f9034c6cbe5cbafb0cd4c862d9dddfbdf7389)

media/libheif/HeifDecoderImpl.cpp

index 175d458..57209e2 100644 (file)
@@ -139,6 +139,11 @@ ssize_t HeifDataSource::readAt(off64_t offset, size_t size) {
     // have been caught above.
     CHECK(offset >= mCachedOffset);
 
+    off64_t resultOffset;
+    if (__builtin_add_overflow(offset, size, &resultOffset)) {
+        return ERROR_IO;
+    }
+
     if (size == 0) {
         return 0;
     }