# HG changeset patch # User Daniel Atallah # Date 1210189420 0 # Node ID 7d4fcb1425724a99994af775f9af304e8bbe9e95 # Parent 56a38b60576e924bc7fed35c544609b237634350 Fix some potential leakage in the craziness called purple_markup_html_to_xhtml(). diff -r 56a38b60576e -r 7d4fcb142572 libpurple/util.c --- a/libpurple/util.c Wed May 07 19:06:28 2008 +0000 +++ b/libpurple/util.c Wed May 07 19:43:40 2008 +0000 @@ -1525,6 +1525,8 @@ while(*p && *p != '>') { if(!g_ascii_strncasecmp(p, "src=", strlen("src="))) { const char *q = p + strlen("src="); + if (src) + g_string_free(src, TRUE); src = g_string_new(""); if(*q == '\'' || *q == '\"') q++; @@ -1535,6 +1537,8 @@ p = q; } else if(!g_ascii_strncasecmp(p, "alt=", strlen("alt="))) { const char *q = p + strlen("alt="); + if (alt) + g_string_free(alt, TRUE); alt = g_string_new(""); if(*q == '\'' || *q == '\"') q++; @@ -1572,6 +1576,8 @@ if (url) g_string_free(url, TRUE); url = g_string_new(""); + if (cdata) + g_string_free(cdata, TRUE); cdata = g_string_new(""); if(*q == '\'' || *q == '\"') q++; @@ -4209,8 +4215,7 @@ /* not sure if this fallback is useful at all */ if (!node->data) node->data = g_strdup (s+5); } else { - result = g_list_remove_link(result, node); - g_list_free_1 (node); + result = g_list_delete_link(result, node); } g_free (s); }