[Spice-devel] [spice-gtk 1/2] sasl: Fix memory leaks in spice_channel_perform_auth_sasl()

Marc-André Lureau mlureau at redhat.com
Wed Oct 16 18:21:10 CEST 2013


Sorry to ask, but what was the leak exactly?

----- Original Message -----
> While looking at the SASL code, I noticed some memory leaks.
> ---
>  gtk/spice-channel.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c
> index 08418f7..9b2697e 100644
> --- a/gtk/spice-channel.c
> +++ b/gtk/spice-channel.c
> @@ -1387,7 +1387,9 @@ static gboolean
> spice_channel_perform_auth_sasl(SpiceChannel *channel)
>                            SASL_SUCCESS_DATA,
>                            &saslconn);
>      g_free(localAddr);
> +    localAddr = NULL;
>      g_free(remoteAddr);
> +    remoteAddr = NULL;
>  
>      if (err != SASL_OK) {
>          g_critical("Failed to create SASL client context: %d (%s)",
> @@ -1436,8 +1438,6 @@ static gboolean
> spice_channel_perform_auth_sasl(SpiceChannel *channel)
>      spice_channel_read(channel, mechlist, len);
>      mechlist[len] = '\0';
>      if (c->has_error) {
> -        g_free(mechlist);
> -        mechlist = NULL;
>          goto error;
>      }
>  
> @@ -1450,11 +1450,11 @@ restart:
>                              &clientout,
>                              &clientoutlen,
>                              &mechname);
> +    g_free(mechlist);
> +    mechlist = NULL;
>      if (err != SASL_OK && err != SASL_CONTINUE && err != SASL_INTERACT) {
>          g_critical("Failed to start SASL negotiation: %d (%s)",
>                     err, sasl_errdetail(saslconn));
> -        g_free(mechlist);
> -        mechlist = NULL;
>          goto error;
>      }
>  
> @@ -1640,6 +1640,10 @@ complete:
>      return ret;
>  
>  error:
> +    g_free(localAddr);
> +    g_free(remoteAddr);
> +    g_free(mechlist);
> +    g_free(serverin);
>      g_clear_object(&addr);
>      if (saslconn)
>          sasl_dispose(&saslconn);
> --
> 1.8.3.1
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list