Mercurial > pidgin
diff libpurple/network.c @ 26551:5d1140b0b10a
Don't leak the struct sockaddr* from purple_dnsquery_a.
At least one of these gives me:
==00:00:06:28.468 13659== 32 bytes in 2 blocks are definitely lost in loss record 1,020 of 3,383
==00:00:06:28.468 13659== at 0x04c278ae: malloc (vg_replace_malloc.c:207)
==00:00:06:28.468 13659== by 0x09b29a12: g_malloc (gmem.c:131)
==00:00:06:28.468 13659== by 0x07d2fd8c: host_resolved (dnsquery.c:578)
| author | Paul Aurich <paul@darkrain42.org> |
|---|---|
| date | Sun, 12 Apr 2009 22:23:34 +0000 |
| parents | ff4212a5268f |
| children | 8290e36a5a73 |
line wrap: on
line diff
--- a/libpurple/network.c Sun Apr 12 21:53:41 2009 +0000 +++ b/libpurple/network.c Sun Apr 12 22:23:34 2009 +0000 @@ -825,8 +825,13 @@ *ip = g_strdup(dst); purple_debug_info("network", "set IP address: %s\n", *ip); } - - g_slist_free(hosts); + + while (hosts != NULL) { + hosts = g_slist_delete_link(hosts, hosts); + /* Free the address */ + g_free(hosts->data); + hosts = g_slist_delete_link(hosts, hosts); + } } void
