[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