[systemd-devel] [PATCH] sd-bus: fix memory leak in test-bus-chat

Daniel Mack daniel at zonque.org
Wed May 13 04:01:30 PDT 2015


On 05/10/2015 03:14 AM, Cristian Rodríguez wrote:
> Building with address sanitizer enabled on GCC 5.1.x a memory leak
> is reported because we never close the bus, fix it by using
> cleanup variable attribute.
> ---
>  src/libsystemd/sd-bus/test-bus-chat.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/src/libsystemd/sd-bus/test-bus-chat.c b/src/libsystemd/sd-bus/test-bus-chat.c
> index 99261fa..1e50dfc 100644
> --- a/src/libsystemd/sd-bus/test-bus-chat.c
> +++ b/src/libsystemd/sd-bus/test-bus-chat.c
> @@ -262,7 +262,7 @@ fail:
>  
>  static void* client1(void*p) {
>          _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
> -        sd_bus *bus = NULL;
> +        _cleanup_bus_close_unref_ sd_bus *bus = NULL;
>          sd_bus_error error = SD_BUS_ERROR_NULL;
>          const char *hello;
>          int r;
> @@ -345,8 +345,6 @@ finish:
>                  else
>                          sd_bus_send(bus, q, NULL);
>  
> -                sd_bus_flush(bus);

We should still keep this flush, right?

> -                sd_bus_unref(bus);
>          }
>  
>          sd_bus_error_free(&error);
> 

Thanks,
Daniel



More information about the systemd-devel mailing list