OSDN Git Service

am dc2d031a: am da9fd70d: am 2758eb2e: am fde92eb0: Update maxNumber to be smaller.
authorMichael Lentine <mlentine@google.com>
Thu, 19 Feb 2015 00:32:42 +0000 (00:32 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Thu, 19 Feb 2015 00:32:42 +0000 (00:32 +0000)
* commit 'dc2d031a7ee05725ad3d8cab4887d6c7a4063967':
  Update maxNumber to be smaller.

1  2 
libs/ui/GraphicBuffer.cpp

@@@ -307,10 -248,14 +307,14 @@@ status_t GraphicBuffer::unflatten
      int const* buf = static_cast<int const*>(buffer);
      if (buf[0] != 'GBFR') return BAD_TYPE;
  
 -    const size_t numFds  = buf[6];
 -    const size_t numInts = buf[7];
 +    const size_t numFds  = buf[8];
 +    const size_t numInts = buf[9];
  
-     const size_t maxNumber = UINT_MAX / sizeof(int);
+     // Limit the maxNumber to be relatively small. The number of fds or ints
+     // should not come close to this number, and the number itself was simply
+     // chosen to be high enough to not cause issues and low enough to prevent
+     // overflow problems.
+     const size_t maxNumber = 4096;
      if (numFds >= maxNumber || numInts >= (maxNumber - 10)) {
          width = height = stride = format = usage = 0;
          handle = NULL;