From a8042286ff60af5dd7cf4df7366fd5411fc3d7ca Mon Sep 17 00:00:00 2001 From: Marius Gerbershagen Date: Mon, 1 Jun 2020 17:26:14 +0200 Subject: [PATCH] queue_signal: prevent circular lists in pending_interrupt Leads to infinite loops in handle_all_queued. --- src/c/unixint.d | 1 + 1 file changed, 1 insertion(+) diff --git a/src/c/unixint.d b/src/c/unixint.d index 06275b725..331ca15cb 100644 --- a/src/c/unixint.d +++ b/src/c/unixint.d @@ -446,6 +446,7 @@ queue_signal(cl_env_ptr env, cl_object code, int allocate) } if (record != ECL_NIL) { ECL_RPLACA(record, code); + ECL_RPLACD(record, ECL_NIL); env->interrupt_struct->pending_interrupt = ecl_nconc(env->interrupt_struct->pending_interrupt, record);