Loading...
libkern/c++/OSData.cpp xnu-4570.71.2 xnu-4903.221.2
--- xnu/xnu-4570.71.2/libkern/c++/OSData.cpp
+++ xnu/xnu-4903.221.2/libkern/c++/OSData.cpp
@@ -289,7 +289,9 @@
     if (capacity == EXTERNAL)
         return false;
     
-    newSize = length + inLength;
+    if (os_add_overflow(length, inLength, &newSize))
+        return false;
+
     if ( (newSize > capacity) && newSize > ensureCapacity(newSize) )
         return false;
 
@@ -313,7 +315,9 @@
     if (capacity == EXTERNAL)
         return false;
     
-    newSize = length + inLength;
+    if (os_add_overflow(length, inLength, &newSize))
+        return false;
+
     if ( (newSize > capacity) && newSize > ensureCapacity(newSize) )
         return false;