Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 297933 Details for
Bug 437297
Purple plugin pack memory leak fixes
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Leak fixes
purple-plugin_pack-2.2.0-leakfixes.patch (text/plain), 13.35 KB, created by
Stu Tomlinson
on 2008-03-13 13:28:07 UTC
(
hide
)
Description:
Leak fixes
Filename:
MIME Type:
Creator:
Stu Tomlinson
Created:
2008-03-13 13:28:07 UTC
Size:
13.35 KB
patch
obsolete
>? .build-2.2.0-5.fc9.log >? purple-plugin_pack-2.2.0 >? purple-plugin_pack-2.2.0-5.fc9.src.rpm >? purple-plugin_pack-2.2.0-leakfixes.patch >Index: purple-plugin_pack-2.2.0-album-leakfixes.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-album-leakfixes.patch >diff -N purple-plugin_pack-2.2.0-album-leakfixes.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-album-leakfixes.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,71 @@ >+----------------------------------------------------------------- >+Revision: de1c64fd71e3b7332bcab70bb7b5299db54e010e >+Ancestor: c108d2038ff4394d673a2d3cceb41a155357cb5c >+Author: nosnilmot@guifications.org >+Date: 2008-03-13T01:16:53 >+Branch: org.guifications.plugins >+ >+Modified files: >+ album/album-ui.c album/album-ui.h album/album.c >+ >+ChangeLog: >+ >+Leak fix >+ >+============================================================ >+--- album/album-ui.c defda9fe454d549f137830c492e92a1bfa6fa89a >++++ album/album-ui.c d4365be2ab9f1ad37b203d11f6f9438ec85ab58c >+@@ -126,6 +126,13 @@ static void show_buddy_icon_window(icon_ >+ static void update_icon_view(icon_viewer_key *key); >+ static void show_buddy_icon_window(icon_viewer_key *key, const char *name); >+ >++void icon_viewer_key_free(void *data) >++{ >++ icon_viewer_key *key = (icon_viewer_key *)data; >++ g_free(key->screenname); >++ g_free(key); >++} >++ >+ guint icon_viewer_hash(gconstpointer data) >+ { >+ const icon_viewer_key *key = data; >+@@ -932,6 +939,7 @@ static void show_buddy_icon_window(icon_ >+ /* Return if a window is already opened for the buddy. */ >+ if ((bw = g_hash_table_lookup(buddy_windows, key)) != NULL) >+ { >++ icon_viewer_key_free(key); >+ gtk_window_present(GTK_WINDOW(bw->window)); >+ return; >+ } >+@@ -942,6 +950,7 @@ static void show_buddy_icon_window(icon_ >+ if (key->contact == NULL && >+ (bw = g_hash_table_find(buddy_windows, (GHRFunc)compare_buddy_keys, key)) != NULL) >+ { >++ icon_viewer_key_free(key); >+ gtk_window_present(GTK_WINDOW(bw->window)); >+ return; >+ } >+============================================================ >+--- album/album-ui.h f488b4417d2ab690a24b1dc5d8fab89a4e2f1e6f >++++ album/album-ui.h 51ffa82404a54d18628ede91acb6c871734c5667 >+@@ -36,6 +36,8 @@ gboolean icon_viewer_equal(gconstpointer >+ >+ gboolean icon_viewer_equal(gconstpointer y, gconstpointer z); >+ >++void icon_viewer_key_free(void *key); >++ >+ GList *album_get_plugin_actions(PurplePlugin *plugin, gpointer data); >+ >+ void album_blist_node_menu_cb(PurpleBlistNode *node, GList **menu); >+============================================================ >+--- album/album.c 6ea8e9f67d5f444501f2443ab37ce8aef3e489cb >++++ album/album.c 56fd11b5aa714e262d3a5c6a535e81fdc17294be >+@@ -253,7 +253,7 @@ static gboolean plugin_load(PurplePlugin >+ >+ cache_existing_icons(NULL); >+ >+- buddy_windows = g_hash_table_new_full(icon_viewer_hash, icon_viewer_equal, g_free, g_free); >++ buddy_windows = g_hash_table_new_full(icon_viewer_hash, icon_viewer_equal, icon_viewer_key_free, g_free); >+ >+ return TRUE; >+ } >Index: purple-plugin_pack-2.2.0-irc-more-doublefree.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-irc-more-doublefree.patch >diff -N purple-plugin_pack-2.2.0-irc-more-doublefree.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-irc-more-doublefree.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,26 @@ >+----------------------------------------------------------------- >+Revision: fecd6d9fcf7644d7cd7224697885fbd9db0aef51 >+Ancestor: 72f113b65170567c2f39b284364961de73704d6a >+Author: rekkanoryo@guifications.org >+Date: 2007-10-26T01:44:51 >+Branch: org.guifications.plugins >+ >+Modified files: >+ irc-more/irc-more.c >+ >+ChangeLog: >+ >+typo >+ >+============================================================ >+--- irc-more/irc-more.c 505f934ba5e9960f1a62fda34d0d819a0d818efc >++++ irc-more/irc-more.c 4fc3d11e6c3191856e1d142caae6cbc6d69a29ba >+@@ -164,7 +164,7 @@ notice_cmd_cb(PurpleConversation *conv, >+ irc_info->send_raw(gc, msg, len); >+ >+ /* avoid a possible double-free crash */ >+- if(msg != tmp); >++ if(msg != tmp) >+ g_free(tmp); >+ >+ g_free(msg); >Index: purple-plugin_pack-2.2.0-irc-more-leakfix.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-irc-more-leakfix.patch >diff -N purple-plugin_pack-2.2.0-irc-more-leakfix.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-irc-more-leakfix.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,38 @@ >+----------------------------------------------------------------- >+Revision: 1b414c648f486e3fee880dae2953ab6aa83e691d >+Ancestor: 3b2816a0447e73551fa506262639525e97c5d880 >+Author: nosnilmot@guifications.org >+Date: 2008-03-12T01:39:59 >+Branch: org.guifications.plugins >+ >+Modified files: >+ irc-more/irc-more.c >+ >+ChangeLog: >+ >+Fix a memory leak, I think. Pointers still confuse me, but at least >+valgrind no longer complains >+ >+============================================================ >+--- irc-more/irc-more.c 6ca1b130c8f53bdbcbf4270c4f6c6bb923de0bd8 >++++ irc-more/irc-more.c e3b3af122e1980010d29acf1afad17619d8a4b63 >+@@ -177,7 +177,7 @@ irc_sending_text(PurpleConnection *gc, c >+ irc_sending_text(PurpleConnection *gc, char **msg, gpointer null) >+ { >+ PurpleAccount *account = purple_connection_get_account(gc); >+- char **old = msg; >++ char *old = *msg; >+ >+ if (MATCHES("QUIT ")) { >+ char *message = strchr(*msg, ':'); >+@@ -198,8 +198,8 @@ irc_sending_text(PurpleConnection *gc, c >+ *version = '\0'; >+ *msg = g_strdup_printf("%s:\001VERSION %s\001\r\n", *msg, CTCP_REPLY); >+ } >+- if (msg != old) >+- g_free(*old); >++ if (*msg != old) >++ g_free(old); >+ } >+ >+ static gboolean >Index: purple-plugin_pack-2.2.0-irchelper-leakfixes.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-irchelper-leakfixes.patch >diff -N purple-plugin_pack-2.2.0-irchelper-leakfixes.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-irchelper-leakfixes.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,31 @@ >+----------------------------------------------------------------- >+Revision: fdacb939f6a59356f60e8fdd30a535af82956489 >+Ancestor: b68d98afb2c565ccfe16c02aecd2961c2515d1b3 >+Author: nosnilmot@guifications.org >+Date: 2008-03-13T01:18:03 >+Branch: org.guifications.plugins >+ >+Modified files: >+ irchelper/irchelper.c >+ >+ChangeLog: >+ >+Potential leak fix (use with other plugins can leak) >+ >+============================================================ >+--- irchelper/irchelper.c d835ad297d173931bba3998e1cbf748c1346e633 >++++ irchelper/irchelper.c 9a813bbd5e33f23af90d36f13ce1d4d1f999e74d >+@@ -199,7 +199,12 @@ static PurpleConversation *get_conversat >+ >+ conv = g_new0(PurpleConversation, 1); >+ conv->type = PURPLE_CONV_TYPE_IM; >+- purple_conversation_set_account(conv, account); >++ /* If we use this then the conversation updated signal is fired and >++ * other plugins might start doing things to our conversation, such as >++ * setting data on it which we would then need to free etc. It's easier >++ * just to be more hacky by setting account directly. */ >++ /* purple_conversation_set_account(conv, account); */ >++ conv->account = account; >+ >+ return conv; >+ } >Index: purple-plugin_pack-2.2.0-irssi-leakfixes.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-irssi-leakfixes.patch >diff -N purple-plugin_pack-2.2.0-irssi-leakfixes.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-irssi-leakfixes.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,38 @@ >+----------------------------------------------------------------- >+Revision: b68d98afb2c565ccfe16c02aecd2961c2515d1b3 >+Ancestor: de1c64fd71e3b7332bcab70bb7b5299db54e010e >+Author: nosnilmot@guifications.org >+Date: 2008-03-13T01:17:12 >+Branch: org.guifications.plugins >+ >+Modified files: >+ irssi/textfmt.c >+ >+ChangeLog: >+ >+Leak fixes >+ >+============================================================ >+--- irssi/textfmt.c 24b6147b7fa9e5c42b322977fe12f1a6dfabd86f >++++ irssi/textfmt.c 70d6b3788fb6bf8fbdeea8d18204b426784e869e >+@@ -104,8 +104,10 @@ irssi_textfmt_regex_helper(gchar *messag >+ /* now let's replce the matches. >+ * If we don't have any, drop out right away. >+ */ >+- if(regexec(®ex, iter, GROUP_TOTAL, matches, 0) != 0) >++ if(regexec(®ex, iter, GROUP_TOTAL, matches, 0) != 0) { >++ regfree(®ex); >+ return message; >++ } >+ >+ /* create our GString. Heh heh */ >+ str = g_string_new(""); >+@@ -145,6 +147,8 @@ irssi_textfmt_regex_helper(gchar *messag >+ iter += matches[GROUP_ALL].rm_eo; >+ } while(regexec(®ex, iter, GROUP_TOTAL, matches, REG_NOTBOL) == 0); >+ >++ regfree(®ex); >++ >+ /* at this point, iter is either the remains of the text, of a single null >+ * terminator. So throw it onto the GString. >+ */ >Index: purple-plugin_pack-2.2.0-switchspell-leakfix.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-switchspell-leakfix.patch >diff -N purple-plugin_pack-2.2.0-switchspell-leakfix.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-switchspell-leakfix.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,25 @@ >+----------------------------------------------------------------- >+Revision: deb50ce99d36e5290f1528a8a26720de238c41ee >+Ancestor: a2a92dd78d14b3d2c6868de692f3dec0b69367cc >+Author: nosnilmot@guifications.org >+Date: 2008-03-13T01:21:47 >+Branch: org.guifications.plugins >+ >+Modified files: >+ switchspell/switchspell.c >+ >+ChangeLog: >+ >+Leak fix >+ >+============================================================ >+--- switchspell/switchspell.c 2f3fc7b38e1ef2f10e72bc629663655dc513b84e >++++ switchspell/switchspell.c d378a9ce5ff5d1b6e03ca2a91bca7d8adc6338e3 >+@@ -127,6 +127,7 @@ regenerate_switchspell_menu(PidginConver >+ delete_aspell_config(config); >+ >+ dels = aspell_dict_info_list_elements(dlist); >++ aspell_dict_info_list_empty(dlist); >+ while ((entry = aspell_dict_info_enumeration_next(dels)) != 0) { >+ GtkWidget *menuitem = gtk_radio_menu_item_new_with_label(group, entry->name); >+ group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem)); >Index: purple-plugin_pack-2.2.0-timelog-loadfix.patch >=================================================================== >RCS file: purple-plugin_pack-2.2.0-timelog-loadfix.patch >diff -N purple-plugin_pack-2.2.0-timelog-loadfix.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ purple-plugin_pack-2.2.0-timelog-loadfix.patch 13 Mar 2008 13:24:35 -0000 >@@ -0,0 +1,39 @@ >+----------------------------------------------------------------- >+Revision: 09c24e735b32b5c23b87ddb599098d4488d63b5a >+Ancestor: b737ce025bf861f18f2f9021c3f7bd79e0d84a4c >+Author: nosnilmot@guifications.org >+Date: 2007-10-27T14:10:47 >+Branch: org.guifications.plugins >+ >+Modified files: >+ timelog/log-widget.c timelog/range-widget.c >+ >+ChangeLog: >+ >+Fix some compile warnings. I could've sworn I made sure there were no >+compile warnings before I imported this... >+ >+============================================================ >+--- timelog/log-widget.c e059acf53ddfdb8eea5844b5d5dfbaa4a942d29c >++++ timelog/log-widget.c 89fb921903f7891acb39188584bc5e63167b24c8 >+@@ -23,6 +23,8 @@ >+ * 02111-1307, USA. >+ */ >+ >++#include "../common/pp_internal.h" >++ >+ #include <stdio.h> >+ #include <stdlib.h> >+ #include <string.h> >+============================================================ >+--- timelog/range-widget.c d74c0b13d974d08ad1effe7e7b08f2fa444a2cf3 >++++ timelog/range-widget.c 90d2ac082e20eb3da730003c5fd7d745723e9070 >+@@ -21,6 +21,8 @@ >+ * 02111-1307, USA. >+ */ >+ >++#include "../common/pp_internal.h" >++ >+ #include <stdio.h> >+ #include <stdlib.h> >+ #include <string.h> >Index: purple-plugin_pack.spec >=================================================================== >RCS file: /cvs/pkgs/rpms/purple-plugin_pack/devel/purple-plugin_pack.spec,v >retrieving revision 1.5 >diff -u -p -r1.5 purple-plugin_pack.spec >--- purple-plugin_pack.spec 14 Feb 2008 06:21:43 -0000 1.5 >+++ purple-plugin_pack.spec 13 Mar 2008 13:24:35 -0000 >@@ -8,6 +8,12 @@ License: GPLv2+ > URL: http://plugins.guifications.org/trac/wiki/PluginPack > Source0: http://downloads.guifications.org/plugins/Plugin%20Pack/purple-plugin_pack-%{version}.tar.bz2 > Patch0: purple-plugin_pack-2.2.0-switchspell-enchant.patch >+Patch1: purple-plugin_pack-2.2.0-album-leakfixes.patch >+Patch2: purple-plugin_pack-2.2.0-irchelper-leakfixes.patch >+Patch3: purple-plugin_pack-2.2.0-irc-more-doublefree.patch >+Patch4: purple-plugin_pack-2.2.0-irc-more-leakfix.patch >+Patch5: purple-plugin_pack-2.2.0-irssi-leakfixes.patch >+Patch6: purple-plugin_pack-2.2.0-timelog-loadfix.patch > BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) > > BuildRequires: pidgin-devel xmms-devel perl(XML::Parser) gettext-devel >@@ -75,6 +81,12 @@ This package contains a plugin for pidgi > %prep > %setup -q > %patch0 -p 1 -b .enchant >+%patch1 -p 0 -b .leakfix >+%patch2 -p 0 -b .dblfree >+%patch3 -p 0 -b .leakfix >+%patch4 -p 0 -b .leakfix >+%patch5 -p 0 -b .leakfix >+%patch6 -p 0 -b .loadfix > > %build > %configure >@@ -107,6 +119,10 @@ rm -rf $RPM_BUILD_ROOT > %{_libdir}/pidgin/xmmsremote.so > > %changelog >+* Thu Mar 13 2008 Stu Tomlinson <stu@nosnilmot.com> 2.2.0-6 >+- Fix several memory leaks >+- Fix the timelog plugin so it is loadable >+ > * Thu Feb 14 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> 2.2.0-5 > - Rebuild for GCC 4.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 437297
: 297933