Loading...
libkern/c++/OSOrderedSet.cpp xnu-12377.101.15 xnu-8020.121.3
--- xnu/xnu-12377.101.15/libkern/c++/OSOrderedSet.cpp
+++ xnu/xnu-8020.121.3/libkern/c++/OSOrderedSet.cpp
@@ -173,10 +173,12 @@
 		return capacity;
 	}
 
-	newArray = kreallocp_type_container(_Element, array,
-	    capacity, &finalCapacity, Z_WAITOK_ZERO);
+	newArray = kallocp_type_container(_Element, &finalCapacity, Z_WAITOK_ZERO);
 	if (newArray) {
 		OSCONTAINER_ACCUMSIZE(sizeof(_Element) * (finalCapacity - capacity));
+
+		bcopy(array, newArray, capacity * sizeof(_Element));
+		kfree_type(_Element, capacity, array);
 		array = newArray;
 		capacity = finalCapacity;
 	}