Loading...
--- libmalloc/libmalloc-715.120.13/src/sanitizer_malloc.c
+++ libmalloc/libmalloc-715.140.5/src/sanitizer_malloc.c
@@ -704,7 +704,7 @@
return size;
}
-static void * __alloc_size(2)
+static void * __alloc_size(2) __sized_by_or_null(size)
sanitizer_malloc_type_malloc_noalign_with_options(sanitizer_zone_t *zone,
size_t size, uint64_t options, malloc_type_id_t type_id)
{
@@ -785,14 +785,14 @@
return ptr;
}
-static void * __alloc_size(2)
+static void * __alloc_size(2) __sized_by_or_null(size)
sanitizer_malloc(sanitizer_zone_t *zone, size_t size)
{
return sanitizer_malloc_type_malloc_noalign_with_options(zone, size, 0,
malloc_get_tsd_type_id());
}
-static void * __alloc_size(2)
+static void * __alloc_size(2) __sized_by_or_null(size)
sanitizer_malloc_type_malloc(sanitizer_zone_t *zone, size_t size,
malloc_type_id_t type_id)
{
@@ -800,7 +800,7 @@
type_id);
}
-static void * __alloc_size(2,3)
+static void * __alloc_size(2,3) __sized_by_or_null(num_items * size)
sanitizer_malloc_type_calloc(sanitizer_zone_t *zone, size_t num_items,
size_t size, malloc_type_id_t type_id)
{
@@ -859,14 +859,14 @@
}
-static void * __alloc_size(2,3)
+static void * __alloc_size(2,3) __sized_by_or_null(num_items * size)
sanitizer_calloc(sanitizer_zone_t *zone, size_t num_items, size_t size)
{
return sanitizer_malloc_type_calloc(zone, num_items, size,
malloc_get_tsd_type_id());
}
-static void * __alloc_size(2)
+static void * __alloc_size(2) __sized_by_or_null(size)
sanitizer_valloc(sanitizer_zone_t *zone, size_t size)
{
if (!size) {
@@ -904,6 +904,10 @@
static void
sanitizer_free(sanitizer_zone_t *zone, void * __unsafe_indexable ptr)
{
+ if (os_unlikely(!ptr)) {
+ return;
+ }
+
size_t size = 0;
if (zone->do_poisoning) {
size = DELEGATE(size, ptr);
@@ -913,7 +917,7 @@
place_into_quarantine(zone, ptr, size);
}
-static void * __alloc_size(3)
+static void * __alloc_size(3) __sized_by_or_null(new_size)
sanitizer_malloc_type_realloc(sanitizer_zone_t *zone,
void * __unsafe_indexable ptr, size_t new_size,
malloc_type_id_t type_id)
@@ -991,7 +995,7 @@
return new_ptr;
}
-static void * __alloc_size(3)
+static void * __alloc_size(3) __sized_by_or_null(new_size)
sanitizer_realloc(sanitizer_zone_t *zone, void * __unsafe_indexable ptr, size_t new_size)
{
return sanitizer_malloc_type_realloc(zone, ptr, new_size,
@@ -1011,7 +1015,7 @@
#endif /* !MALLOC_TARGET_EXCLAVES */
}
-static void * __alloc_align(2) __alloc_size(3)
+static void * __alloc_align(2) __alloc_size(3) __sized_by_or_null(size)
sanitizer_malloc_type_memalign(sanitizer_zone_t *zone, size_t align,
size_t size, malloc_type_id_t type_id)
{
@@ -1059,14 +1063,14 @@
return ptr;
}
-static void * __alloc_align(2) __alloc_size(3)
+static void * __alloc_align(2) __alloc_size(3) __sized_by_or_null(size)
sanitizer_memalign(sanitizer_zone_t *zone, size_t align, size_t size)
{
return sanitizer_malloc_type_memalign(zone, align, size,
malloc_get_tsd_type_id());
}
-static void * __alloc_align(2) __alloc_size(3)
+static void * __alloc_align(2) __alloc_size(3) __sized_by_or_null(size)
sanitizer_malloc_type_malloc_with_options(sanitizer_zone_t *zone, size_t align,
size_t size, uint64_t options, malloc_type_id_t type_id)
{
@@ -1095,7 +1099,7 @@
return ptr;
}
-static void * __alloc_align(2) __alloc_size(3)
+static void * __alloc_align(2) __alloc_size(3) __sized_by_or_null(size)
sanitizer_malloc_with_options(sanitizer_zone_t *zone, size_t align, size_t size,
uint64_t options)
{