1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 12:20:26 +02:00

Fix segfault in thread_mark

* libguile/threads.c (thread_mark): There is a window in which the
  thread has a handle but doesn't yet have the set of pointerless
  freelists, so don't unconditionally dereference
  t->pointerless_freelists.
This commit is contained in:
Andy Wingo 2014-02-21 14:42:24 +01:00
parent c53d0f01dd
commit c65ea594e9

View file

@ -100,6 +100,7 @@ thread_mark (GC_word *addr, struct GC_ms_entry *mark_stack_ptr,
but GC doesn't know to trace them (as they are pointerless), so we
need to do that here. See the comments at the top of libgc's
gc_inline.h. */
if (t->pointerless_freelists)
{
size_t n;
for (n = 0; n < SCM_INLINE_GC_FREELIST_COUNT; n++)