Signed-off-by: Mathieu Desnoyers <[email protected]>
---
 src/bin/lttng-sessiond/ust-app.c | 42 ++++++++++++++++++++++++++--------------
 1 file changed, 27 insertions(+), 15 deletions(-)

diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c
index 9ab5f77..bc1d62d 100644
--- a/src/bin/lttng-sessiond/ust-app.c
+++ b/src/bin/lttng-sessiond/ust-app.c
@@ -3408,31 +3408,43 @@ void ust_app_clean_list(void)
 
        rcu_read_lock();
 
-       cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) {
-               ret = lttng_ht_del(ust_app_ht, &iter);
-               assert(!ret);
-               call_rcu(&app->pid_n.head, delete_ust_app_rcu);
+       if (ust_app_ht) {
+               cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, 
pid_n.node) {
+                       ret = lttng_ht_del(ust_app_ht, &iter);
+                       assert(!ret);
+                       call_rcu(&app->pid_n.head, delete_ust_app_rcu);
+               }
        }
 
        /* Cleanup socket hash table */
-       cds_lfht_for_each_entry(ust_app_ht_by_sock->ht, &iter.iter, app,
-                       sock_n.node) {
-               ret = lttng_ht_del(ust_app_ht_by_sock, &iter);
-               assert(!ret);
+       if (ust_app_ht_by_sock) {
+               cds_lfht_for_each_entry(ust_app_ht_by_sock->ht, &iter.iter, app,
+                               sock_n.node) {
+                       ret = lttng_ht_del(ust_app_ht_by_sock, &iter);
+                       assert(!ret);
+               }
        }
 
        /* Cleanup notify socket hash table */
-       cds_lfht_for_each_entry(ust_app_ht_by_notify_sock->ht, &iter.iter, app,
-                       notify_sock_n.node) {
-               ret = lttng_ht_del(ust_app_ht_by_notify_sock, &iter);
-               assert(!ret);
+       if (ust_app_ht_by_notify_sock) {
+               cds_lfht_for_each_entry(ust_app_ht_by_notify_sock->ht, 
&iter.iter, app,
+                               notify_sock_n.node) {
+                       ret = lttng_ht_del(ust_app_ht_by_notify_sock, &iter);
+                       assert(!ret);
+               }
        }
        rcu_read_unlock();
 
        /* Destroy is done only when the ht is empty */
-       ht_cleanup_push(ust_app_ht);
-       ht_cleanup_push(ust_app_ht_by_sock);
-       ht_cleanup_push(ust_app_ht_by_notify_sock);
+       if (ust_app_ht) {
+               ht_cleanup_push(ust_app_ht);
+       }
+       if (ust_app_ht_by_sock) {
+               ht_cleanup_push(ust_app_ht_by_sock);
+       }
+       if (ust_app_ht_by_notify_sock) {
+               ht_cleanup_push(ust_app_ht_by_notify_sock);
+       }
 }
 
 /*
-- 
2.1.1


_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to