about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2022-04-27 17:00:30 +0200
committerMichael Vetter <jubalh@iodoru.org>2022-04-27 17:00:30 +0200
commit2dc0cc489c872941e18a622c091f74bf5b0b043f (patch)
tree02169c1db2ce75d5090f58fe6ba99f8f72b7fa60 /src
parent196fdd9cb91e2bdb58c5cb0fad53746c32460d8c (diff)
downloadprofani-tty-2dc0cc489c872941e18a622c091f74bf5b0b043f.tar.gz
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.
```
Diffstat (limited to 'src')
-rw-r--r--src/xmpp/message.c6
1 files 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);