[compiler-rt] [scudo] Add hooks to mark the range of realloc (PR #73883)

via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 29 19:54:20 PST 2023


================
@@ -27,6 +27,51 @@ static void reportDeallocation(void *ptr) {
     if (__scudo_deallocate_hook)
       __scudo_deallocate_hook(ptr);
 }
+static void reportReallocBegin(void *old_ptr) {
+  if (SCUDO_ENABLE_HOOKS)
+    if (__scudo_realloc_begin_hook)
+      __scudo_realloc_begin_hook(old_ptr);
+}
+static void reportReallocEnd(void *old_ptr) {
+  if (SCUDO_ENABLE_HOOKS)
+    if (__scudo_realloc_end_hook)
+      __scudo_realloc_end_hook(old_ptr);
+}
+
+static void *reallocImpl(void *ptr, size_t size) {
+  if (!ptr) {
+    void *Ptr = SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Malloc,
+                                         SCUDO_MALLOC_ALIGNMENT);
+    reportAllocation(Ptr, size);
----------------
ChiaHungDuan wrote:

I think we have covered that case. In `reportAllocation`, it only reports the ptr if it's non-nullptr.

```
static void reportAllocation(void *ptr, size_t size) {                              
  if (SCUDO_ENABLE_HOOKS)                                                           
    if (__scudo_allocate_hook && ptr)                                               
      __scudo_allocate_hook(ptr, size);                                             
}               
```

https://github.com/llvm/llvm-project/pull/73883


More information about the llvm-commits mailing list