Fix segfault in ust_fork
authorYannick Brosseau <yannick.brosseau@gmail.com>
Fri, 18 Feb 2011 21:39:07 +0000 (16:39 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Fri, 18 Feb 2011 21:39:07 +0000 (16:39 -0500)
Move the ltt_trace_destroy after the iteration of open_buffer_list. The destroy
free the pointers used in the open_buffer_list

Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
libust/tracectl.c

index d32deba978ac8d2500fa6a222d07a520a2db2ebc..1bd722949aaca5c4335f53b16b270d30e68f238d 100644 (file)
@@ -1581,7 +1581,6 @@ static void ust_fork(void)
        ltt_unlock_traces();
 
        ltt_trace_stop("auto");
        ltt_unlock_traces();
 
        ltt_trace_stop("auto");
-       ltt_trace_destroy("auto", 1);
        /* Delete all active connections, but leave them in the epoll set */
        cds_list_for_each_entry_safe(sock, sock_tmp, &ust_socks, list) {
                ustcomm_del_sock(sock, 1);
        /* Delete all active connections, but leave them in the epoll set */
        cds_list_for_each_entry_safe(sock, sock_tmp, &ust_socks, list) {
                ustcomm_del_sock(sock, 1);
@@ -1601,6 +1600,8 @@ static void ust_fork(void)
                cds_list_del(&buf->open_buffers_list);
        }
 
                cds_list_del(&buf->open_buffers_list);
        }
 
+       ltt_trace_destroy("auto", 1);
+
        /* Clean up the listener socket and epoll, keeping the scoket file */
        ustcomm_del_named_sock(listen_sock, 1);
        close(epoll_fd);
        /* Clean up the listener socket and epoll, keeping the scoket file */
        ustcomm_del_named_sock(listen_sock, 1);
        close(epoll_fd);
This page took 0.027365 seconds and 4 git commands to generate.