Fix: Memory leak of agent
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Sun, 30 Aug 2015 22:50:39 +0000 (18:50 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 1 Sep 2015 16:03:08 +0000 (12:03 -0400)
agent_destroy() has a comment which indicates that it does _not_
destroy the pointer passed to it and it seems that agents are
never realeased under any code path whatsoever.

There does not seem to be an instance where an agent is allocated on
the stack.

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

index adca25ac1c0ea551a8c2b540917ab5e87a9394b0..b7d41f2f406ad948012666e45cde4872e93bc3ee 100644 (file)
@@ -960,8 +960,7 @@ void agent_destroy_event(struct agent_event *event)
 }
 
 /*
 }
 
 /*
- * Destroy an agent completely. Note that the given pointer is NOT freed
- * thus a reference to static or stack data can be passed to this function.
+ * Destroy an agent completely.
  */
 void agent_destroy(struct agent *agt)
 {
  */
 void agent_destroy(struct agent *agt)
 {
@@ -992,6 +991,7 @@ void agent_destroy(struct agent *agt)
        rcu_read_unlock();
 
        ht_cleanup_push(agt->events);
        rcu_read_unlock();
 
        ht_cleanup_push(agt->events);
+       free(agt);
 }
 
 /*
 }
 
 /*
This page took 0.026008 seconds and 4 git commands to generate.