[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