adium 2227:4410488f13d0: Avoid leaking protocol-status_text mess...
commits at adium.im
commits at adium.im
Sun May 17 20:15:10 UTC 2009
details: http://hg.adium.im/adium/rev/4410488f13d0
revision: 2227:4410488f13d0
author: Zachary West <zacw at adium.im>
date: Sun May 17 16:15:01 2009 -0400
Avoid leaking protocol-status_text messages.
diffstat:
Plugins/Purple Service/CBPurpleAccount.m | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diffs (36 lines):
diff -r 75729afc39a1 -r 4410488f13d0 Plugins/Purple Service/CBPurpleAccount.m
--- a/Plugins/Purple Service/CBPurpleAccount.m Sun May 17 14:36:43 2009 -0400
+++ b/Plugins/Purple Service/CBPurpleAccount.m Sun May 17 16:15:01 2009 -0400
@@ -254,6 +254,7 @@
PurplePresence *presence = purple_buddy_get_presence(buddy);
PurpleStatus *status = (presence ? purple_presence_get_active_status(presence) : NULL);
const char *message = (status ? purple_status_get_attr_string(status, "message") : NULL);
+ NSString *statusMessage = nil;
// Get the plugin's status message for this buddy if they don't have a status message
if (!message) {
@@ -263,16 +264,20 @@
NULL);
if (prpl_info && prpl_info->status_text) {
- message = (prpl_info->status_text)(buddy);
+ char *status_text = (prpl_info->status_text)(buddy);
// Don't display "Offline" as a status message.
- if (message && !strcmp(message, _("Offline"))) {
- message = NULL;
+ if (status_text && strcmp(status_text, _("Offline")) != 0) {
+ statusMessage = [NSString stringWithUTF8String:status_text];
}
+
+ g_free(status_text);
}
+ } else {
+ statusMessage = [NSString stringWithUTF8String:message];
}
- return message ? [AIHTMLDecoder decodeHTML:[NSString stringWithUTF8String:message]] : nil;
+ return statusMessage ? [AIHTMLDecoder decodeHTML:statusMessage] : nil;
}
/*!
More information about the commits
mailing list