From 2dc0cc489c872941e18a622c091f74bf5b0b043f Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 27 Apr 2022 17:00:30 +0200 Subject: [PATCH] ox: dont print empty body message Fix https://github.com/profanity-im/profanity/issues/1693 ``` @StefanKropp @DebXWoody please check `_handle_ox_chat()` I don't understand what you are doing there. 1) First plain is assigned `message->plain = p_ox_gpg_decrypt(xmpp_stanza_get_text(ox));` and then in the same if block you overwrite this with `message->plain = xmpp_stanza_get_text(b);` without freeing the old value as far as I can see. 2) Sometimes even doing `message->plain = "OX error: No payload found";`. Shouldn't there be a `strdup()`? I think later on we try to free the whole message struct. So we can't mix this static things. ``` --- src/xmpp/message.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/xmpp/message.c b/src/xmpp/message.c index 4a136bde..c18f9376 100644 --- a/src/xmpp/message.c +++ b/src/xmpp/message.c @@ -1452,12 +1452,13 @@ _handle_chat(xmpp_stanza_t* const stanza, gboolean is_mam, gboolean is_carbon, c // 0085 works only with resource if (jid->resourcepart) { - // XEP-0085: Chat State Notifications + // XEP-0085: Chat Stase Notifications _handle_chat_states(stanza, jid); } message_free(message); } + static void _handle_ox_chat(xmpp_stanza_t* const stanza, ProfMessage* message, gboolean is_mam) { @@ -1478,8 +1479,7 @@ _handle_ox_chat(xmpp_stanza_t* const stanza, ProfMessage* message, gboolean is_m } xmpp_stanza_t* b = xmpp_stanza_get_child_by_name(p, "body"); if (!b) { - log_warning("OX Stanza - no body"); - message->plain = "OX error: No payload body found"; + log_debug("OX Stanza - no body"); return; } message->plain = xmpp_stanza_get_text(b);