From 49b4212d83f599e22051ceb831721d5a31f42e3d Mon Sep 17 00:00:00 2001 From: Stefan Becker Date: Mon, 25 Aug 2014 21:53:45 +0300 Subject: [PATCH] purple: fix memory leak in set buddy status Reported in this forum thread https://sourceforge.net/p/sipe/discussion/688534/thread/4aca1c0a/ (cherry picked from commit 97d879c680c501717080c4507f050e065c90744e) --- src/purple/purple-buddy.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/purple/purple-buddy.c b/src/purple/purple-buddy.c index 2be77f8e..9159c506 100644 --- a/src/purple/purple-buddy.c +++ b/src/purple/purple-buddy.c @@ -315,7 +315,7 @@ void sipe_backend_buddy_set_status(struct sipe_core_public *sipe_public, struct sipe_backend_private *purple_private = sipe_public->backend_private; PurpleBuddy *buddy = NULL; PurpleStatus *status = NULL; - const gchar *tmp = NULL; + gchar *tmp = NULL; buddy = purple_blist_find_buddy(purple_private->account, who); if (buddy) @@ -323,16 +323,17 @@ void sipe_backend_buddy_set_status(struct sipe_core_public *sipe_public, if (status) tmp = sipe_core_buddy_status(PURPLE_BUDDY_TO_SIPE_CORE_PUBLIC, - purple_buddy_get_name(buddy), - sipe_purple_token_to_activity(purple_status_get_id(status)), - purple_status_get_name(status)); + purple_buddy_get_name(buddy), + sipe_purple_token_to_activity(purple_status_get_id(status)), + purple_status_get_name(status)); - if (tmp) + if (tmp) { purple_prpl_got_user_status(purple_private->account, who, sipe_purple_activity_to_token(activity), SIPE_PURPLE_STATUS_ATTR_ID_MESSAGE, tmp, NULL); - else + g_free(tmp); + } else purple_prpl_got_user_status(purple_private->account, who, sipe_purple_activity_to_token(activity), NULL); -- 2.11.4.GIT