Loading...
libkern/c++/OSString.cpp xnu-7195.141.2 xnu-8019.80.24
--- xnu/xnu-7195.141.2/libkern/c++/OSString.cpp
+++ xnu/xnu-8019.80.24/libkern/c++/OSString.cpp
@@ -106,6 +106,7 @@
 OSString::initWithStringOfLength(const char *cString, size_t inlength)
 {
 	unsigned int   newLength;
+	unsigned int   cStringLength;
 	char         * newString;
 
 	if (!cString || !super::init()) {
@@ -116,8 +117,10 @@
 		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);
@@ -199,7 +202,7 @@
 }
 
 OSSharedPtr<OSString>
-OSString::withStringOfLength(const char *cString, size_t length)
+OSString::withCString(const char *cString, size_t length)
 {
 	OSSharedPtr<OSString> me = OSMakeShared<OSString>();
 
@@ -325,7 +328,7 @@
 		return false;
 	}
 
-	unsigned int dataLen = obj->getLength();;
+	unsigned int dataLen = obj->getLength();
 	const char * dataPtr = (const char *) obj->getBytesNoCopy();
 
 	if (dataLen != length) {