Loading...
libkern/c++/OSString.cpp xnu-7195.121.3 xnu-8792.61.2
--- xnu/xnu-7195.121.3/libkern/c++/OSString.cpp
+++ xnu/xnu-8792.61.2/libkern/c++/OSString.cpp
@@ -82,7 +82,8 @@
 	}
 
 	newLength++;
-	newString = (char *)kalloc_data_container(newLength, Z_WAITOK);
+	newString = (char *)kalloc_data(newLength,
+	    Z_VM_TAG_BT(Z_WAITOK, VM_KERN_MEMORY_LIBKERN));
 	if (!newString) {
 		return false;
 	}
@@ -90,7 +91,7 @@
 	bcopy(cString, newString, newLength);
 
 	if (!(flags & kOSStringNoCopy) && string) {
-		kfree_data_container(string, length);
+		kfree_data(string, length);
 		OSCONTAINER_ACCUMSIZE(-((size_t)length));
 	}
 	string = newString;
@@ -106,6 +107,7 @@
 OSString::initWithStringOfLength(const char *cString, size_t inlength)
 {
 	unsigned int   newLength;
+	unsigned int   cStringLength;
 	char         * newString;
 
 	if (!cString || !super::init()) {
@@ -116,12 +118,15 @@
 		return false;
 	}
 
-	if (strnlen(cString, inlength) < inlength) {
-		return false;
+	cStringLength = (unsigned int)strnlen(cString, inlength);
+
+	if (cStringLength < inlength) {
+		inlength = cStringLength;
 	}
 
 	newLength = (unsigned int) (inlength + 1);
-	newString = (char *)kalloc_data_container(newLength, Z_WAITOK);
+	newString = (char *)kalloc_data(newLength,
+	    Z_VM_TAG_BT(Z_WAITOK, VM_KERN_MEMORY_LIBKERN));
 	if (!newString) {
 		return false;
 	}
@@ -130,7 +135,7 @@
 	newString[inlength] = 0;
 
 	if (!(flags & kOSStringNoCopy) && string) {
-		kfree_data_container(string, length);
+		kfree_data(string, length);
 		OSCONTAINER_ACCUMSIZE(-((size_t)length));
 	}
 
@@ -199,7 +204,7 @@
 }
 
 OSSharedPtr<OSString>
-OSString::withStringOfLength(const char *cString, size_t length)
+OSString::withCString(const char *cString, size_t length)
 {
 	OSSharedPtr<OSString> me = OSMakeShared<OSString>();
 
@@ -245,7 +250,7 @@
 OSString::free()
 {
 	if (!(flags & kOSStringNoCopy) && string) {
-		kfree_data_container(string, length);
+		kfree_data(string, length);
 		OSCONTAINER_ACCUMSIZE(-((size_t)length));
 	}
 
@@ -325,7 +330,7 @@
 		return false;
 	}
 
-	unsigned int dataLen = obj->getLength();;
+	unsigned int dataLen = obj->getLength();
 	const char * dataPtr = (const char *) obj->getBytesNoCopy();
 
 	if (dataLen != length) {