From f4be9daf4d3ab03ebc6c9d9c546c87a0efb83608 Mon Sep 17 00:00:00 2001 From: Jeremy Lorelli Date: Fri, 3 Nov 2023 11:40:25 -0700 Subject: [PATCH] Null check callback function in callbackRequest Previously, calling callbackRequest(pcallback), where pcallback->callback is NULL, would result in a crash on one of the callback threads. --- modules/database/src/ioc/db/callback.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/database/src/ioc/db/callback.c b/modules/database/src/ioc/db/callback.c index 556da37b9..0e40138e8 100644 --- a/modules/database/src/ioc/db/callback.c +++ b/modules/database/src/ioc/db/callback.c @@ -344,6 +344,10 @@ int callbackRequest(epicsCallback *pcallback) epicsInterruptContextMessage("callbackRequest: " ERL_ERROR " pcallback was NULL\n"); return S_db_notInit; } + if (!pcallback->callback) { + epicsInterruptContextMessage("callbackRequest: " ERL_ERROR " pcallback->callback was NULL\n"); + return S_db_notInit; + } priority = pcallback->priority; if (priority < 0 || priority >= NUM_CALLBACK_PRIORITIES) { epicsInterruptContextMessage("callbackRequest: " ERL_ERROR " Bad priority\n");