Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package weechat for openSUSE:Factory checked 
in at 2026-03-10 17:53:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/weechat (Old)
 and      /work/SRC/openSUSE:Factory/.weechat.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "weechat"

Tue Mar 10 17:53:28 2026 rev:91 rq:1337822 version:4.8.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/weechat/weechat.changes  2025-12-02 
13:21:40.594681299 +0100
+++ /work/SRC/openSUSE:Factory/.weechat.new.8177/weechat.changes        
2026-03-10 17:53:43.824582357 +0100
@@ -1,0 +2,8 @@
+Mon Mar  9 14:55:24 UTC 2026 - Hunter Wardlaw <[email protected]>
+
+- Update to 4.8.2:
+  * irc: ignore self join if the channel is already joined (#2291)
+  * relay/api: fix memory leaks in resources "ping" and "sync"
+  * relay/api: fix memory leak in receive of message from remote WeeChat
+
+-------------------------------------------------------------------

Old:
----
  weechat-4.8.1.tar.xz
  weechat-4.8.1.tar.xz.asc

New:
----
  weechat-4.8.2.tar.xz
  weechat-4.8.2.tar.xz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ weechat.spec ++++++
--- /var/tmp/diff_new_pack.rIR6Nb/_old  2026-03-10 17:53:44.384605479 +0100
+++ /var/tmp/diff_new_pack.rIR6Nb/_new  2026-03-10 17:53:44.388605644 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package weechat
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           weechat
-Version:        4.8.1
+Version:        4.8.2
 Release:        0
 Summary:        Multi-protocol extensible Chat Client
 License:        GPL-3.0-or-later

++++++ weechat-4.8.1.tar.xz -> weechat-4.8.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weechat-4.8.1/CHANGELOG.md 
new/weechat-4.8.2/CHANGELOG.md
--- old/weechat-4.8.1/CHANGELOG.md      2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/CHANGELOG.md      2026-03-06 23:15:44.000000000 +0100
@@ -6,6 +6,14 @@
 
 # WeeChat ChangeLog
 
+## Version 4.8.2 (2026-03-06)
+
+### Fixed
+
+- irc: ignore self join if the channel is already joined 
([#2291](https://github.com/weechat/weechat/issues/2291))
+- relay/api: fix memory leaks in resources "ping" and "sync"
+- relay/api: fix memory leak in receive of message from remote WeeChat
+
 ## Version 4.8.1 (2025-12-01)
 
 ### Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weechat-4.8.1/po/de.po new/weechat-4.8.2/po/de.po
--- old/weechat-4.8.1/po/de.po  2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/po/de.po  2026-03-06 23:15:44.000000000 +0100
@@ -28,8 +28,8 @@
 msgstr ""
 "Project-Id-Version: WeeChat\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2025-11-28 18:41+0100\n"
-"PO-Revision-Date: 2025-11-09 11:00+0100\n"
+"POT-Creation-Date: 2026-01-30 13:45+0100\n"
+"PO-Revision-Date: 2026-02-04 23:06+0100\n"
 "Last-Translator: Nils Görs <[email protected]>\n"
 "Language-Team: German <[email protected]>\n"
 "Language: de_DE\n"
@@ -2257,7 +2257,7 @@
 "> - use \"\\t\" to separate prefix from message, special chars like \"|\" "
 "must be escaped: \"\\|\""
 msgstr ""
-"> - das Präfix (z.B. Nick) wird mittels '\t' von der Nachricht getrennt. "
+"> - das Präfix (z.B. Nick) wird mittels '\\t' von der Nachricht getrennt. "
 "Sonderzeichen wie '|' müssen mit einer Escapesequenz : '\\|' eingebunden "
 "werden"
 
@@ -7986,7 +7986,7 @@
 msgstr ""
 "fügt einen Zeilenumbruch zwischen die einzelnen Buffer hinzu um pro Zeile "
 "einen Buffer anzuzeigen (empfohlen); falls deaktiviert muss ein "
-"Zeilenumbruch manuell hinzugefügt werden, \"${\\\\n}\", des Weiteren ist die "
+"Zeilenumbruch manuell hinzugefügt werden, \"${\\n}\", des Weiteren ist die "
 "Mausunterstützung nicht mehr gegeben"
 
 msgid ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weechat-4.8.1/src/plugins/irc/irc-protocol.c 
new/weechat-4.8.2/src/plugins/irc/irc-protocol.c
--- old/weechat-4.8.1/src/plugins/irc/irc-protocol.c    2025-12-01 
19:43:41.000000000 +0100
+++ new/weechat-4.8.2/src/plugins/irc/irc-protocol.c    2026-03-06 
23:15:44.000000000 +0100
@@ -1753,6 +1753,9 @@
     ptr_channel = irc_channel_search (ctxt->server, ctxt->params[0]);
     if (ptr_channel)
     {
+        /* ignore self join if the channel is already joined */
+        if (ctxt->nick_is_me && ptr_channel->nicks)
+            return WEECHAT_RC_OK;
         ptr_channel->part = 0;
     }
     else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/weechat-4.8.1/src/plugins/relay/api/relay-api-protocol.c 
new/weechat-4.8.2/src/plugins/relay/api/relay-api-protocol.c
--- old/weechat-4.8.1/src/plugins/relay/api/relay-api-protocol.c        
2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/src/plugins/relay/api/relay-api-protocol.c        
2026-03-06 23:15:44.000000000 +0100
@@ -1056,13 +1056,15 @@
                                cJSON_CreateString ((ptr_data) ? ptr_data : 
""));
         relay_api_msg_send_json (client, RELAY_HTTP_200_OK, NULL, "ping", 
json);
         cJSON_Delete (json);
-        cJSON_Delete (json_body);
     }
     else
     {
         relay_api_msg_send_json (client, RELAY_HTTP_204_NO_CONTENT, NULL, 
NULL, NULL);
     }
 
+    if (json_body)
+        cJSON_Delete (json_body);
+
     return RELAY_API_PROTOCOL_RC_OK;
 }
 
@@ -1121,6 +1123,9 @@
 
     relay_api_msg_send_json (client, RELAY_HTTP_204_NO_CONTENT, NULL, NULL, 
NULL);
 
+    if (json_body)
+        cJSON_Delete (json_body);
+
     return RELAY_API_PROTOCOL_RC_OK;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/weechat-4.8.1/src/plugins/relay/api/remote/relay-remote-event.c 
new/weechat-4.8.2/src/plugins/relay/api/remote/relay-remote-event.c
--- old/weechat-4.8.1/src/plugins/relay/api/remote/relay-remote-event.c 
2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/src/plugins/relay/api/remote/relay-remote-event.c 
2026-03-06 23:15:44.000000000 +0100
@@ -1283,7 +1283,15 @@
 
     json = cJSON_Parse (data);
     if (!json)
-        goto error_data;
+    {
+        weechat_printf (
+            NULL,
+            _("%sremote[%s]: invalid data received from remote relay: \"%s\""),
+            weechat_prefix ("error"),
+            remote->name,
+            data);
+        return;
+    }
 
     event.remote = remote;
     event.name = NULL;
@@ -1296,7 +1304,7 @@
     json_body = cJSON_GetObjectItem (json, "body");
 
     if (!body_type && ((code == 200) || (code == 204)))
-        return;
+        goto end;
 
     JSON_GET_STR(json, event_name);
     event.name = event_name;
@@ -1352,7 +1360,15 @@
             rc = (callback) (&event);
         }
         if (rc == WEECHAT_RC_ERROR)
-            goto error_cb;
+        {
+            weechat_printf (
+                NULL,
+                _("%sremote[%s]: callback failed for body type \"%s\""),
+                weechat_prefix ("error"),
+                remote->name,
+                body_type);
+            goto end;
+        }
     }
 
     if (!remote->synced && initial_sync)
@@ -1361,23 +1377,6 @@
         weechat_bar_item_update ("input_prompt");
     }
 
-    return;
-
-error_data:
-    weechat_printf (
-        NULL,
-        _("%sremote[%s]: invalid data received from remote relay: \"%s\""),
-        weechat_prefix ("error"),
-        remote->name,
-        data);
-    return;
-
-error_cb:
-    weechat_printf (
-        NULL,
-        _("%sremote[%s]: callback failed for body type \"%s\""),
-        weechat_prefix ("error"),
-        remote->name,
-        body_type);
-    return;
+end:
+    cJSON_Delete (json);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/weechat-4.8.1/src/plugins/relay/api/remote/relay-remote-network.c 
new/weechat-4.8.2/src/plugins/relay/api/remote/relay-remote-network.c
--- old/weechat-4.8.1/src/plugins/relay/api/remote/relay-remote-network.c       
2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/src/plugins/relay/api/remote/relay-remote-network.c       
2026-03-06 23:15:44.000000000 +0100
@@ -156,6 +156,7 @@
     int accept_ok, hash_size;
 
     http_resp = NULL;
+    json_body = NULL;
     msg_error = NULL;
     msg_resp_error = NULL;
     accept_ok = 0;
@@ -225,6 +226,9 @@
 
     relay_http_response_free (http_resp);
 
+    if (json_body)
+        cJSON_Delete (json_body);
+
     return 1;
 
 error:
@@ -238,6 +242,8 @@
         (msg_resp_error) ? msg_resp_error : "",
         (msg_resp_error) ? ")" : "");
     relay_http_response_free (http_resp);
+    if (json_body)
+        cJSON_Delete (json_body);
     return 0;
 }
 
@@ -1200,6 +1206,8 @@
 
     remote->hook_url_handshake = NULL;
 
+    json_body = NULL;
+
     ptr_resp_code = weechat_hashtable_get (output, "response_code");
     if (ptr_resp_code && ptr_resp_code[0] && (strcmp (ptr_resp_code, "200") != 
0))
     {
@@ -1211,7 +1219,7 @@
             weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]),
             ptr_resp_code);
         relay_remote_network_disconnect (remote);
-        return WEECHAT_RC_OK;
+        goto end;
     }
 
     ptr_error = weechat_hashtable_get (output, "error");
@@ -1225,7 +1233,7 @@
             weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]),
             ptr_error);
         relay_remote_network_disconnect (remote);
-        return WEECHAT_RC_OK;
+        goto end;
     }
 
     ptr_output = weechat_hashtable_get (output, "output");
@@ -1262,7 +1270,7 @@
             weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]),
             _("hash algorithm not found"));
         relay_remote_network_disconnect (remote);
-        return WEECHAT_RC_OK;
+        goto end;
     }
 
     if (remote->password_hash_iterations < 0)
@@ -1275,7 +1283,7 @@
             weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]),
             _("unknown number of hash iterations"));
         relay_remote_network_disconnect (remote);
-        return WEECHAT_RC_OK;
+        goto end;
     }
 
     if (remote->totp < 0)
@@ -1288,7 +1296,7 @@
             weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]),
             _("unknown TOTP status"));
         relay_remote_network_disconnect (remote);
-        return WEECHAT_RC_OK;
+        goto end;
     }
 
     if (weechat_relay_plugin->debug >= 1)
@@ -1325,7 +1333,7 @@
                 weechat_prefix ("error"),
                 remote->name);
             relay_remote_network_disconnect (remote);
-            return WEECHAT_RC_OK;
+            goto end;
         }
         snprintf (option_name, length, "weechat.proxy.%s.type", proxy);
         proxy_type = weechat_config_get (option_name);
@@ -1343,7 +1351,7 @@
                 _("%sremote[%s]: proxy \"%s\" not found, cannot connect"),
                 weechat_prefix ("error"), remote->name, proxy);
             relay_remote_network_disconnect (remote);
-            return WEECHAT_RC_OK;
+            goto end;
         }
         str_proxy_type = weechat_config_string (proxy_type);
         str_proxy_address = weechat_config_string (proxy_address);
@@ -1356,7 +1364,7 @@
                   "proxy \"%s\""),
                 weechat_prefix ("error"), remote->name, proxy);
             relay_remote_network_disconnect (remote);
-            return WEECHAT_RC_OK;
+            goto end;
         }
     }
 
@@ -1375,6 +1383,9 @@
         remote,
         NULL);
 
+end:
+    if (json_body)
+        cJSON_Delete (json_body);
     return WEECHAT_RC_OK;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/weechat-4.8.1/tests/unit/plugins/irc/test-irc-protocol.cpp 
new/weechat-4.8.2/tests/unit/plugins/irc/test-irc-protocol.cpp
--- old/weechat-4.8.1/tests/unit/plugins/irc/test-irc-protocol.cpp      
2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/tests/unit/plugins/irc/test-irc-protocol.cpp      
2026-03-06 23:15:44.000000000 +0100
@@ -2070,7 +2070,6 @@
     LONGS_EQUAL(0, ptr_channel->has_quit_server);
     LONGS_EQUAL(0, ptr_channel->cycle);
     LONGS_EQUAL(0, ptr_channel->part);
-    LONGS_EQUAL(0, ptr_channel->part);
     STRCMP_EQUAL(NULL, ptr_channel->pv_remote_nick_color);
     POINTERS_EQUAL(NULL, ptr_channel->hook_autorejoin);
 
@@ -2090,6 +2089,10 @@
 
     CHECK(ptr_channel->buffer);
 
+    /* second self JOIN should be ignored if already joined */
+    RECV(":alice!user@host JOIN #test ");
+    CHECK_NO_MSG;
+
     RECV(":bob!user@host JOIN #test  *  :   ");
     CHECK_CHAN("-->", "bob (   ) (user@host) has joined #test",
                "irc_join,irc_smart_filter,nick_bob,host_user@host,log4");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weechat-4.8.1/version.sh new/weechat-4.8.2/version.sh
--- old/weechat-4.8.1/version.sh        2025-12-01 19:43:41.000000000 +0100
+++ new/weechat-4.8.2/version.sh        2026-03-06 23:15:44.000000000 +0100
@@ -41,8 +41,8 @@
 #     devel-number   the devel version as hex number ("0x04010000" for 
"4.1.0-dev")
 #
 
-weechat_stable="4.8.1"
-weechat_devel="4.8.1"
+weechat_stable="4.8.2"
+weechat_devel="4.8.2"
 
 stable_major=$(echo "${weechat_stable}" | cut -d"." -f1)
 stable_minor=$(echo "${weechat_stable}" | cut -d"." -f2)

Reply via email to