diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2023-05-11 20:20:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-11 20:20:03 +0200 |
| commit | 968a07ed7ab665ef8d02c3e2dee9d1aaeadc2ca2 (patch) | |
| tree | c7200e16f2c3aee8ae00b809bc264bce58f7d204 | |
| parent | 82561cfbac8e12a3f74e9ea54a7e080a5bdaa2cb (diff) | |
| parent | f9c600a76008a8404479e8107066cdaf2dea3eaf (diff) | |
Merge pull request #2531 from jasonKercher/fix2530
add nil check to heap_alloc calls (issue 2530)
| -rw-r--r-- | core/os/os.odin | 2 | ||||
| -rw-r--r-- | core/os/os2/heap_linux.odin | 2 | ||||
| -rw-r--r-- | core/os/os2/heap_windows.odin | 2 | ||||
| -rw-r--r-- | core/runtime/os_specific_windows.odin | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/core/os/os.odin b/core/os/os.odin index 971abd911..b71ea261e 100644 --- a/core/os/os.odin +++ b/core/os/os.odin @@ -194,7 +194,7 @@ heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode, ptr := uintptr(aligned_mem) aligned_ptr := (ptr - 1 + uintptr(a)) & -uintptr(a) diff := int(aligned_ptr - ptr) - if (size + diff) > space { + if (size + diff) > space || allocated_mem == nil { return nil, .Out_Of_Memory } diff --git a/core/os/os2/heap_linux.odin b/core/os/os2/heap_linux.odin index b631268a1..136c3e6cb 100644 --- a/core/os/os2/heap_linux.odin +++ b/core/os/os2/heap_linux.odin @@ -166,7 +166,7 @@ _heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode, ptr := uintptr(aligned_mem) aligned_ptr := (ptr - 1 + uintptr(a)) & -uintptr(a) diff := int(aligned_ptr - ptr) - if (size + diff) > space { + if (size + diff) > space || allocated_mem == nil { return nil, .Out_Of_Memory } diff --git a/core/os/os2/heap_windows.odin b/core/os/os2/heap_windows.odin index 0f154cd8c..eba403c1d 100644 --- a/core/os/os2/heap_windows.odin +++ b/core/os/os2/heap_windows.odin @@ -52,7 +52,7 @@ _heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode, ptr := uintptr(aligned_mem) aligned_ptr := (ptr - 1 + uintptr(a)) & -uintptr(a) diff := int(aligned_ptr - ptr) - if (size + diff) > space { + if (size + diff) > space || allocated_mem == nil { return nil, .Out_Of_Memory } diff --git a/core/runtime/os_specific_windows.odin b/core/runtime/os_specific_windows.odin index 6e7474257..732715793 100644 --- a/core/runtime/os_specific_windows.odin +++ b/core/runtime/os_specific_windows.odin @@ -112,7 +112,7 @@ _windows_default_alloc_or_resize :: proc "contextless" (size, alignment: int, ol ptr := uintptr(aligned_mem) aligned_ptr := (ptr - 1 + uintptr(a)) & -uintptr(a) diff := int(aligned_ptr - ptr) - if (size + diff) > space { + if (size + diff) > space || allocated_mem == nil { return nil, .Out_Of_Memory } |