Fix relayd: check for NULL in session_put
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 9 Sep 2019 14:22:58 +0000 (10:22 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 9 Sep 2019 14:26:25 +0000 (10:26 -0400)
The session and relay daemons both define their own "session"
APIs (ltt_session and relay_session) which define a session_put()
function.

Coverity reports that a fair amount of callers now assume that
session_put() assumes that a NULL check is performed (as in the
sessiond).

Since the session daemon's variant checks for NULL, it makes sense to
bring both implementation to parity to fix the problems reported and
make this function less confusing to use. This also allows
simplifications to the error handling paths in the relay daemon
(not included in this patch).

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-relayd/session.c

index af2278d46a2f318a91dbc2a5d28d57bed14f2f11..827746430712e098d028f8a8105ab881cdf336ed 100644 (file)
@@ -389,6 +389,9 @@ void session_release(struct urcu_ref *ref)
 
 void session_put(struct relay_session *session)
 {
 
 void session_put(struct relay_session *session)
 {
+       if (!session) {
+               return;
+       }
        rcu_read_lock();
        urcu_ref_put(&session->ref, session_release);
        rcu_read_unlock();
        rcu_read_lock();
        urcu_ref_put(&session->ref, session_release);
        rcu_read_unlock();
This page took 0.025097 seconds and 4 git commands to generate.