# HG changeset patch # User Olaf Wintermann # Date 1717609844 -7200 # Node ID ad44e72fbf50035eed479662f6652debd66bd56f # Parent e95fa761db0c891241732dd884b10ab921d3e1cf add extra nullptr check in the event loop to handle the case when the finish ptr is set to NULL after it was already scheduled diff -r e95fa761db0c -r ad44e72fbf50 src/server/daemon/event_bsd.c --- a/src/server/daemon/event_bsd.c Wed Jun 05 19:49:17 2024 +0200 +++ b/src/server/daemon/event_bsd.c Wed Jun 05 19:50:44 2024 +0200 @@ -143,7 +143,10 @@ // call event finish handlers for(int i=0;ifinish(ev, event); + // check again if the finish callback is set + if(finished[i]->finish) { + finished[i]->finish(ev, event); + } } // execute return calls for(int i=0;inumret;i++) { diff -r e95fa761db0c -r ad44e72fbf50 src/server/daemon/event_linux.c --- a/src/server/daemon/event_linux.c Wed Jun 05 19:49:17 2024 +0200 +++ b/src/server/daemon/event_linux.c Wed Jun 05 19:50:44 2024 +0200 @@ -171,7 +171,10 @@ // call event finish handlers for(int i=0;ifinish(ev, event); + // check again if the finish callback is set + if(finished[i]->finish) { + finished[i]->finish(ev, event); + } } // execute return calls for(int i=0;inumret;i++) { diff -r e95fa761db0c -r ad44e72fbf50 src/server/daemon/event_solaris.c --- a/src/server/daemon/event_solaris.c Wed Jun 05 19:49:17 2024 +0200 +++ b/src/server/daemon/event_solaris.c Wed Jun 05 19:50:44 2024 +0200 @@ -124,7 +124,10 @@ // call event finish handlers for(int i=0;ifinish(ev, event); + // check again if the finish callback is set + if(finished[i]->finish) { + finished[i]->finish(ev, event); + } } // execute return calls for(int i=0;inumret;i++) {