# HG changeset patch
# User Olaf Wintermann <olaf.wintermann@gmail.com>
# Date 1652003572 -7200
# Node ID ebd1e67c3d5f7cdc2c61e6b2d23d6a62b0ac1420
# Parent  52831b82b3fdf523a2501c03fc5f1431dfb17b95
fix invalid memory access in event_bsd.c

diff -r 52831b82b3fd -r ebd1e67c3d5f src/server/daemon/event_bsd.c
--- a/src/server/daemon/event_bsd.c	Sun May 08 10:46:56 2022 +0200
+++ b/src/server/daemon/event_bsd.c	Sun May 08 11:52:52 2022 +0200
@@ -92,6 +92,7 @@
                 
                 continue;
             }
+            int event_events = event->events;
             
             if(event->fn) {
                 int saved_ev = event->events;
@@ -102,12 +103,14 @@
                         event->finish(ev, event);
                     }
                     
-                    event->events = 0;
+                    event_events = 0;
+                } else {
+                    event_events = event->events;
                 }
                 
                 // if events have changed, we need to add/remove filters
-                if(saved_ev != event->events) {
-                    int e = event->events;
+                if(saved_ev != event_events) {
+                    int e = event_events;
                     int e_fd = events[i].ident;
                     if((e & EVENT_POLLIN) != (saved_ev & EVENT_POLLIN)) {
                         if((e & EVENT_POLLIN) == EVENT_POLLIN) {