Fix: liblttng-ctl: leak of tracker handle in lttng_[un]track_pid
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 20 May 2020 19:56:03 +0000 (15:56 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 20 May 2020 20:15:53 +0000 (16:15 -0400)
The lttng_track_pid and lttng_untrack_pid functions were reimplemented
on top of the new lttng_process_attr_tracker_handle API (new in 2.12).

Both functions do not destroy the tracker handle on their return
path.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ieeeace2011ba6ee1e5024306ea735f0389c3980d

src/lib/lttng-ctl/tracker.c

index 3f852fe72bcca794ba858cf978e303339be0087b..4f720ead80a5f1e8e72aea72c17833f680848c6b 100644 (file)
@@ -574,6 +574,7 @@ int lttng_track_pid(struct lttng_handle *handle, int pid)
                                                        (pid_t) pid);
        ret_code = handle_status_to_error_code(handle_status);
 end:
                                                        (pid_t) pid);
        ret_code = handle_status_to_error_code(handle_status);
 end:
+       lttng_process_attr_tracker_handle_destroy(tracker_handle);
        return ret_code == LTTNG_OK ? 0 : -ret_code;
 }
 
        return ret_code == LTTNG_OK ? 0 : -ret_code;
 }
 
@@ -637,6 +638,7 @@ int lttng_untrack_pid(struct lttng_handle *handle, int pid)
                ret_code = LTTNG_ERR_PID_NOT_TRACKED;
        }
 end:
                ret_code = LTTNG_ERR_PID_NOT_TRACKED;
        }
 end:
+       lttng_process_attr_tracker_handle_destroy(tracker_handle);
        return ret_code == LTTNG_OK ? 0 : -ret_code;
 }
 
        return ret_code == LTTNG_OK ? 0 : -ret_code;
 }
 
This page took 0.027273 seconds and 4 git commands to generate.