]> git.saurik.com Git - apple/xnu.git/blobdiff - libkern/c++/OSData.cpp
xnu-4570.1.46.tar.gz
[apple/xnu.git] / libkern / c++ / OSData.cpp
index a542ee60364f7add87a7a8d16be835dce9be8780..fda3dd7c9c3f1a84880f97fae580d60d8a93aafa 100644 (file)
@@ -76,8 +76,8 @@ bool OSData::initWithCapacity(unsigned int inCapacity)
        if (inCapacity < page_size) data = (void *) kalloc_container(inCapacity);
        else {
            kern_return_t kr;
-           inCapacity = round_page_32(inCapacity);
-           kr = kmem_alloc(kernel_map, (vm_offset_t *)&data, inCapacity, IOMemoryTag(kernel_map));
+           if (round_page_overflow(inCapacity, &inCapacity)) kr = KERN_RESOURCE_SHORTAGE;
+           else kr = kmem_alloc(kernel_map, (vm_offset_t *)&data, inCapacity, IOMemoryTag(kernel_map));
            if (KERN_SUCCESS != kr) data = NULL;
        }
         if (!data)