[Pidgin] #16129: Three possible memory leaks in libpurple/protocols/gg/roster.c

Pidgin trac at pidgin.im
Mon Mar 10 19:02:03 EDT 2014


#16129: Three possible memory leaks in libpurple/protocols/gg/roster.c
--------------------------------+-------------------------
 Reporter:  AnonymousSubmitter  |      Owner:
     Type:  patch               |     Status:  new
Milestone:                      |  Component:  libpurple
  Version:  2.10.9              |   Keywords:  leak memory
--------------------------------+-------------------------
 Hi,

 I am not sure if it's libpurple's or gadu-gadu's issue. Please adjust if
 necessary.

 {{{
 void ggp_roster_group_buddy(PurpleConnection *gc, const char *who,
         const char *old_group, const char *new_group)
 {
         ggp_roster_session_data *rdata = ggp_roster_get_rdata(gc);
         ggp_roster_change *change = g_new0(ggp_roster_change, 1);

         if (!ggp_roster_enabled())
                 return;

 (...)
 }}}

 *change is allocated, but not freed upon return when gpg_roster_enabled
 returns true.

 {{{
 void ggp_roster_rename_group(PurpleConnection *gc, const char *old_name,
         PurpleGroup *group, GList *moved_buddies)
 {
         ggp_roster_session_data *rdata = ggp_roster_get_rdata(gc);
         ggp_roster_change *change = g_new0(ggp_roster_change, 1);

         if (!ggp_roster_enabled())
                 return;
 (...)
 }}}

 Same here.

 {{{
 void ggp_roster_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy,
         PurpleGroup *group)
 {
         ggp_roster_session_data *rdata = ggp_roster_get_rdata(gc);
         ggp_roster_change *change = g_new0(ggp_roster_change, 1);

         if (!ggp_roster_enabled())
                 return;
 (...)
 }}}

 And same here.

-- 
Ticket URL: <https://developer.pidgin.im/ticket/16129>
Pidgin <https://pidgin.im>
Pidgin


More information about the Tracker mailing list