From 1ef0592eec58b95caa65b7838c9dcebca3640194 Mon Sep 17 00:00:00 2001 From: Gabriel Baraldi Date: Thu, 8 Jan 2026 10:45:30 -0300 Subject: [PATCH] =?UTF-8?q?Don=C2=B4t=20set=20the=20owner=20of=20the=20str?= =?UTF-8?q?ing=20needlessly.=20This=20might=20cause=20double=20frees/use?= =?UTF-8?q?=20after=20frees.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gc-stock.c | 2 +- src/genericmemory.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gc-stock.c b/src/gc-stock.c index 845ff43909f0d..c53da51b58ecf 100644 --- a/src/gc-stock.c +++ b/src/gc-stock.c @@ -636,7 +636,7 @@ void jl_gc_reset_alloc_count(void) JL_NOTSAFEPOINT static void jl_gc_free_memory(jl_genericmemory_t *m, int isaligned) JL_NOTSAFEPOINT { assert(jl_is_genericmemory(m)); - assert(jl_genericmemory_how(m) == 1 || jl_genericmemory_how(m) == 2); + assert(jl_genericmemory_how(m) == 1); char *d = (char*)m->ptr; size_t freed_bytes = memory_block_usable_size(d, isaligned); assert(freed_bytes != 0); diff --git a/src/genericmemory.c b/src/genericmemory.c index ae45237433fcc..dc1c687d1d382 100644 --- a/src/genericmemory.c +++ b/src/genericmemory.c @@ -199,7 +199,6 @@ JL_DLLEXPORT jl_value_t *jl_genericmemory_to_string(jl_genericmemory_t *m, size_ size_t mlength = m->length; if (how != 0) { jl_value_t *o = jl_genericmemory_data_owner_field(m); - jl_genericmemory_data_owner_field(m) = NULL; if (how == 3 && // implies jl_is_string(o) ((mlength + sizeof(void*) + 1 <= GC_MAX_SZCLASS) == (len + sizeof(void*) + 1 <= GC_MAX_SZCLASS))) { if (jl_string_data(o)[len] != '\0')