[lttng-dev] [PATCH lttng-tools] Fix: notification test: resources leak and return handling
Jérémie Galarneau
jeremie.galarneau at efficios.com
Tue Jun 13 15:34:23 UTC 2017
Merged in master and stable-2.10 with a change. Read on.
Thanks!
Jérémie
On 2 June 2017 at 14:52, Jonathan Rajotte
<jonathan.rajotte-julien at efficios.com> wrote:
> Fixes CID #1375913, 1375912, 1375911 1375910 1375909 1375908
>
> Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com>
> ---
> tests/regression/tools/notification/base_client.c | 25 ++++++++++++++++++----
> tests/regression/tools/notification/notification.c | 2 ++
> 2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/tests/regression/tools/notification/base_client.c b/tests/regression/tools/notification/base_client.c
> index 21a8ac3f..7fbaa9e4 100644
> --- a/tests/regression/tools/notification/base_client.c
> +++ b/tests/regression/tools/notification/base_client.c
> @@ -297,7 +297,9 @@ end:
> if (trigger) {
> lttng_unregister_trigger(trigger);
> }
> - lttng_notification_channel_unsubscribe(notification_channel, condition);
> + if (lttng_notification_channel_unsubscribe(notification_channel, condition)) {
> + printf("error: channel unsubscribe error\n");
> + }
> lttng_trigger_destroy(trigger);
> lttng_condition_destroy(condition);
> lttng_action_destroy(action);
> @@ -330,12 +332,27 @@ int handle_condition(
> }
>
> /* Fetch info to test */
> - lttng_condition_buffer_usage_get_session_name(condition,
> + ret = lttng_condition_buffer_usage_get_session_name(condition,
> &condition_session_name);
> - lttng_condition_buffer_usage_get_channel_name(condition,
> + if (ret) {
> + printf("error: session name could not be fetched\n");
> + ret = 1;
> + goto end;
> + }
> + ret = lttng_condition_buffer_usage_get_channel_name(condition,
> &condition_channel_name);
> - lttng_condition_buffer_usage_get_domain_type(condition,
> + if (ret) {
> + printf("error: channel name could not be fetched\n");
> + ret = 1;
> + goto end;
> + }
> + ret = lttng_condition_buffer_usage_get_domain_type(condition,
> &condition_domain_type);
> + if (ret) {
> + printf("error: domain type could not be fetched\n");
> + ret = 1;
> + goto end;
> + }
>
> if (strcmp(condition_session_name, session_name) != 0) {
> printf("error: session name differs\n");
> diff --git a/tests/regression/tools/notification/notification.c b/tests/regression/tools/notification/notification.c
> index f69e884a..4a0c6dc9 100644
> --- a/tests/regression/tools/notification/notification.c
> +++ b/tests/regression/tools/notification/notification.c
> @@ -68,6 +68,7 @@ int write_pipe(const char *path, uint8_t data)
> ret = write(fd, &data , sizeof(data));
> if (ret < 1) {
> perror("Named pipe write failed");
> + ret = close(fd);
Changed to
if (close(fd)) {
perror(...);
}
> ret = -1;
> goto end;
> }
> @@ -563,6 +564,7 @@ end:
> lttng_trigger_destroy(trigger);
> lttng_action_destroy(action);
> lttng_condition_destroy(low_condition);
> + lttng_condition_destroy(high_condition);
> lttng_condition_destroy(dummy_invalid_condition);
> lttng_condition_destroy(dummy_condition);
> }
> --
> 2.11.0
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list