From: Mathieu Desnoyers Date: Mon, 5 Jan 2015 20:05:22 +0000 (-0500) Subject: Fix: ust-app null pointer check needed for main refactoring X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=f1b711c4d0d3c3f199b66f7c8f9e8b02c52401ca Fix: ust-app null pointer check needed for main refactoring Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 9ab5f77e0..bc1d62dc7 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); + } } /*