From 87f0db6f5018eeecfb7c182f4b1b00fde21bd758 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sun, 18 Jun 2023 10:32:01 +0200 Subject: [PATCH] Prevent crash when ControlledExit* is not initialized in ngspice shared library. --- src/sharedspice.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sharedspice.c b/src/sharedspice.c index af9dccd02..5e4145a55 100644 --- a/src/sharedspice.c +++ b/src/sharedspice.c @@ -2033,7 +2033,8 @@ ATTRIBUTE_NORETURN void shared_exit(int status) fl_exited = TRUE; bgtr(fl_exited, ng_ident, userptr); // set a flag that ngspice wants to be detached - ngexit(status, FALSE, coquit, ng_ident, userptr); + if(ngexit) + ngexit(status, FALSE, coquit, ng_ident, userptr); // finish and exit the worker thread #ifdef HAVE_LIBPTHREAD pthread_exit(NULL); @@ -2042,7 +2043,8 @@ ATTRIBUTE_NORETURN void shared_exit(int status) #endif } // set a flag in caller to detach ngspice.dll - ngexit(status, immediate, coquit, ng_ident, userptr); + if(ngexit) + ngexit(status, immediate, coquit, ng_ident, userptr); // jump back to finish the calling function if (!intermj)