tevent_poll: fix the usage of tevent_re_initialise()
authorStefan Metzmacher <metze@samba.org>
Fri, 1 Feb 2013 14:27:10 +0000 (15:27 +0100)
committerJeremy Allison <jra@samba.org>
Sun, 3 Feb 2013 03:54:05 +0000 (19:54 -0800)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/tevent/tevent_poll.c

index b8221a44ceaeb89682f8b9be675f72f9a6dcf963..ac567ce7023057ceaa6550801894edd8e1259a8d 100644 (file)
@@ -92,6 +92,14 @@ static int poll_event_context_init(struct tevent_context *ev)
 {
        struct poll_event_context *poll_ev;
 
+       /*
+        * we might be called during tevent_re_initialise()
+        * which means we need to free our old additional_data
+        * in order to detach old fd events from the
+        * poll_ev->fresh list
+        */
+       TALLOC_FREE(ev->additional_data);
+
        poll_ev = talloc_zero(ev, struct poll_event_context);
        if (poll_ev == NULL) {
                return -1;