pidgin/pidgin

Fix a double free in jabber/message.c and silence a warning
release-2.x.y
2021-09-23, Gary Kramlich
740dafa46e5e
Parents e91465803c0e
Children 03ad128b5361
Fix a double free in jabber/message.c and silence a warning

JabberBuddyResource is handled internally, but it's free function, which is static, does in fact free the thread_id as well.

Testing Done:
Compiled

Bugs closed: PIDGIN-17547

Reviewed at https://reviews.imfreedom.org/r/932/
--- a/libpurple/protocols/jabber/message.c Fri Sep 17 15:24:28 2021 -0500
+++ b/libpurple/protocols/jabber/message.c Thu Sep 23 23:27:18 2021 -0500
@@ -798,7 +798,7 @@
case JABBER_MESSAGE_OTHER:
purple_debug_info("jabber",
"Received message of unknown type: %s\n", type);
- /* Fall-through is intentional */
+ /* FALL-THROUGH */
case JABBER_MESSAGE_NORMAL:
case JABBER_MESSAGE_CHAT:
handle_chat(jm);
@@ -1179,12 +1179,13 @@
jm->id = jabber_get_next_id(jm->js);
if(jbr) {
- if(jbr->thread_id)
- jm->thread_id = jbr->thread_id;
+ if(jbr->thread_id) {
+ jm->thread_id = g_strdup(jbr->thread_id);
+ }
- if (jbr->chat_states == JABBER_CHAT_STATES_UNSUPPORTED)
+ if (jbr->chat_states == JABBER_CHAT_STATES_UNSUPPORTED) {
jm->chat_state = JM_STATE_NONE;
- else {
+ } else {
/* if(JABBER_CHAT_STATES_UNKNOWN == jbr->chat_states)
jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; */
}