diff libpurple/media/codec.c @ 30872:1feb2baeac2d

Fix some media code leaks. Fixes #12349. committer: Elliott Sales de Andrade <qulogic@pidgin.im>
author jakub.adam@ktknet.cz
date Tue, 24 Aug 2010 04:45:25 +0000
parents e18c1d347e37
children a8cc50c2279f
line wrap: on
line diff
--- a/libpurple/media/codec.c	Tue Aug 24 04:42:41 2010 +0000
+++ b/libpurple/media/codec.c	Tue Aug 24 04:45:25 2010 +0000
@@ -83,9 +83,11 @@
 			PURPLE_MEDIA_CODEC_GET_PRIVATE(info);
 	g_free(priv->encoding_name);
 	for (; priv->optional_params; priv->optional_params =
-			g_list_delete_link(priv->optional_params,
-			priv->optional_params)) {
-		g_free(priv->optional_params->data);
+			g_list_delete_link(priv->optional_params, priv->optional_params)) {
+		PurpleKeyValuePair *param = priv->optional_params->data;
+		g_free(param->key);
+		g_free(param->value);
+		g_free(param);
 	}
 }
 
@@ -302,10 +304,10 @@
 
 	g_free(param->key);
 	g_free(param->value);
-	g_free(param);
 
 	priv->optional_params =
 			g_list_remove(priv->optional_params, param);
+	g_free(param);
 }
 
 PurpleKeyValuePair *