Loading...
tests/malloc_claimed_address_tests.c libmalloc-166.220.1 libmalloc-409.40.6
--- libmalloc/libmalloc-166.220.1/tests/malloc_claimed_address_tests.c
+++ libmalloc/libmalloc-409.40.6/tests/malloc_claimed_address_tests.c
@@ -10,10 +10,11 @@
 #include <stdio.h>
 #include <mach/mach.h>
 #include <mach/mach_vm.h>
-#include <malloc.h>
 #include <malloc/malloc.h>
 #include <malloc_private.h>
 #include <sys/mman.h>
+
+T_GLOBAL_META(T_META_RUN_CONCURRENTLY(true));
 
 T_DECL(malloc_claimed_address_default_zone_test,
 		"Tests for malloc_claimed_address, default zone only",
@@ -198,6 +199,16 @@
 		free(ptr);
 	}
 
+	// Allocate a non-Nano size, which Nano will pass to its helper zone.
+	// Verify that it still claims the address as valid when asked via the
+	// default zone.
+	void *ptr = malloc(512);
+	result = malloc_claimed_address(ptr);
+	T_EXPECT_TRUE(result, "Above nano pointer check");
+	result = malloc_zone_claimed_address(malloc_default_zone(), ptr);
+	T_EXPECT_TRUE(result, "Above nano pointer check via default zone");
+	free(ptr);
+
 	// Allocate some memory with vm_allocate() and make sure it's not claimed.
 	mach_vm_address_t addr;
 	kern_return_t kr = mach_vm_allocate(mach_task_self(), &addr, 1024, VM_FLAGS_ANYWHERE);