tevent: Add in the same tevent_re_initialise() fix Metze put in the tevent_poll backend.
authorJeremy Allison <jra@samba.org>
Mon, 11 Feb 2013 18:53:15 +0000 (10:53 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 14 Feb 2013 18:19:38 +0000 (10:19 -0800)
We might be called during tevent_re_initialise()
which means we need to free our old additional_data.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
lib/tevent/tevent_epoll.c
lib/tevent/tevent_select.c
lib/tevent/tevent_standard.c

index 5a17331da6c180365d2bde48e2c755b7e28baabf..8696215f49f3793cf871b1626c46fdf63aae1530 100644 (file)
@@ -389,6 +389,12 @@ static int epoll_event_context_init(struct tevent_context *ev)
        int ret;
        struct epoll_event_context *epoll_ev;
 
+       /*
+        * We might be called during tevent_re_initialise()
+        * which means we need to free our old additional_data.
+        */
+       TALLOC_FREE(ev->additional_data);
+
        epoll_ev = talloc_zero(ev, struct epoll_event_context);
        if (!epoll_ev) return -1;
        epoll_ev->ev = ev;
index c11f0e8324c9042bfb1b3c9b8f0f0e66564410c5..7e0c927dd94b2699a1364f86687561f9f57c19b3 100644 (file)
@@ -47,6 +47,12 @@ static int select_event_context_init(struct tevent_context *ev)
 {
        struct select_event_context *select_ev;
 
+       /*
+        * We might be called during tevent_re_initialise()
+        * which means we need to free our old additional_data.
+        */
+       TALLOC_FREE(ev->additional_data);
+
        select_ev = talloc_zero(ev, struct select_event_context);
        if (!select_ev) return -1;
        select_ev->ev = ev;
index 1e33720f7037d21617222bf531394f38fc648cc0..938b2235727fdcc46cd45fe664e6fd03aca5e0d2 100644 (file)
@@ -348,6 +348,12 @@ static int std_event_context_init(struct tevent_context *ev)
 {
        struct std_event_context *std_ev;
 
+       /*
+        * We might be called during tevent_re_initialise()
+        * which means we need to free our old additional_data.
+        */
+       TALLOC_FREE(ev->additional_data);
+
        std_ev = talloc_zero(ev, struct std_event_context);
        if (!std_ev) return -1;
        std_ev->ev = ev;