Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package prosody for openSUSE:Factory checked 
in at 2026-06-03 20:25:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/prosody (Old)
 and      /work/SRC/openSUSE:Factory/.prosody.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "prosody"

Wed Jun  3 20:25:04 2026 rev:44 rq:1356867 version:13.0.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/prosody/prosody.changes  2026-04-30 
20:28:44.342746102 +0200
+++ /work/SRC/openSUSE:Factory/.prosody.new.1937/prosody.changes        
2026-06-03 20:28:29.872330629 +0200
@@ -1,0 +2,33 @@
+Wed Jun  3 05:55:46 UTC 2026 - Michael Vetter <[email protected]>
+
+- Update to 13.0.6:
+  Fixes and improvements:
+  * mod_cloud_notify: Use correct stanza id when clearing table entries (mem 
leak)
+  * mod_admin_shell: Don’t echo new password back to the client
+  * util.pubsub: Remove JIDs not permitted to be subscribed on affiliation 
change (fixes #1709)
+  Minor changes:
+  * mod_account_activity: Don’t traceback when called without options
+  * util.jsonschema: Always accept 0 for multipleOf properties
+  * util.paths: Fix check for adding installer path to package.cpath
+  * util.datamanager: Fix listing of host stores
+  * util.crypto: Use post-Lua 5.1 buffer API for improved memory safety
+  * util.dataforms: Don’t treat invalid jid-multi fields as missing
+  * util.crypto: Ensure signing parameter is a string
+  * util.poll: Reject unsupported file descriptors when using select() backend
+  * util.pubsub: Ensure deleted node stays in memory store deletion failed
+  * util.ringbuffer: Fix incorrect returned position from :find() for 
#needle~=1
+  * util.pposix: Fix incorrect syslog facility mapping
+  * util.ringbuffer: find(): Fix find logic bugs
+  * util.signal: Fix signalfd closure on non-Linux systems
+  * net.websocket: Fix traceback in client if server doesn’t respond with 
Connection header
+  * net.server_event: Fix incorrect flag logic for watchfd handles
+  * mod_debug_stanzas: Only clear active_filters when there are no subscribers
+  * mod_carbons: Fix ‘to’ attribute of stanzas to own account
+  * net.stun: Fix parsing of STUN packets with 0-length attributes
+  * mod_storage_memory: Fix assignment to ‘with’ when calling archive:set()
+  * net.http.parser: Include final component in path normalization check
+  * mod_register_ibr: Use set_password() instead of create_user() for resets
+  * mod_vcard: Ignore invalid photo data
+  * util.timer: Fix incorrect rescheduling of some kinds of timers
+
+-------------------------------------------------------------------

Old:
----
  prosody-13.0.5.tar.gz
  prosody-13.0.5.tar.gz.asc

New:
----
  prosody-13.0.6.tar.gz
  prosody-13.0.6.tar.gz.asc

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

Other differences:
------------------
++++++ prosody.spec ++++++
--- /var/tmp/diff_new_pack.CV3RD3/_old  2026-06-03 20:28:30.660363264 +0200
+++ /var/tmp/diff_new_pack.CV3RD3/_new  2026-06-03 20:28:30.664363429 +0200
@@ -18,7 +18,7 @@
 
 %define _piddir /run
 Name:           prosody
-Version:        13.0.5
+Version:        13.0.6
 Release:        0
 Summary:        Communications server for Jabber/XMPP
 License:        MIT

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.CV3RD3/_old  2026-06-03 20:28:30.696364755 +0200
+++ /var/tmp/diff_new_pack.CV3RD3/_new  2026-06-03 20:28:30.704365086 +0200
@@ -1,6 +1,6 @@
-mtime: 1777528532
-commit: 13fc2188781ec18c7b64ed3eb40802aa88bece2124848eed8e9b950264e4a828
+mtime: 1780466263
+commit: 96f6b9288d6a2f05d732feffc5e482b5a105dd1b0fc8d7ebfafa5b60f9420f9a
 url: https://src.opensuse.org/lua/prosody
-revision: 13fc2188781ec18c7b64ed3eb40802aa88bece2124848eed8e9b950264e4a828
+revision: 96f6b9288d6a2f05d732feffc5e482b5a105dd1b0fc8d7ebfafa5b60f9420f9a
 projectscmsync: https://src.opensuse.org/lua/_ObsPrj.git
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-06-03 07:57:43.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ prosody-13.0.5.tar.gz -> prosody-13.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/.hg_archival.txt 
new/prosody-13.0.6/.hg_archival.txt
--- old/prosody-13.0.5/.hg_archival.txt 2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/.hg_archival.txt 2026-05-27 15:57:49.731381928 +0200
@@ -1,4 +1,4 @@
 repo: 3e3171b59028ee70122cfec6ecf98f518f946b59
-node: 2a66728d9e298653f9ab30e5874b7ba15a53ace7
+node: 8eac8de97bca1ed5debe7a1366ab4414e4ea4dfe
 branch: 13.0
-tag: 13.0.5
+tag: 13.0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/net/http/parser.lua 
new/prosody-13.0.6/net/http/parser.lua
--- old/prosody-13.0.5/net/http/parser.lua      2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/net/http/parser.lua      2026-05-27 15:57:49.731381928 
+0200
@@ -4,13 +4,17 @@
 local urldecode = require "prosody.util.http".urldecode;
 local dbuffer = require "prosody.util.dbuffer";
 
+
+-- This is a basic check, and does *not* fully prevent path traversal (CWE-22).
+-- If the path will be mapped to a filesystem, further processing and checks
+-- are needed for safety and compliance. This is handled by net.http.files.
 local function preprocess_path(path)
        path = urldecode((path:gsub("//+", "/")));
        if path:sub(1,1) ~= "/" then
                path = "/"..path;
        end
        local level = 0;
-       for component in path:gmatch("([^/]+)/") do
+       for component in path:gmatch("([^/]+)") do
                if component == ".." then
                        level = level - 1;
                elseif component ~= "." then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/net/server_event.lua 
new/prosody-13.0.6/net/server_event.lua
--- old/prosody-13.0.5/net/server_event.lua     2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/net/server_event.lua     2026-05-27 15:57:49.731381928 
+0200
@@ -947,7 +947,7 @@
                                self.wantwrite = base:addevent(fd, EV_WRITE, 
function ()
                                        onwriteable(self);
                                end);
-                       elseif not r and self.wantread then
+                       elseif not w and self.wantwrite then
                                self.wantwrite:close();
                                self.wantwrite = nil;
                        end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/net/stun.lua 
new/prosody-13.0.6/net/stun.lua
--- old/prosody-13.0.5/net/stun.lua     2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/net/stun.lua     2026-05-27 15:57:49.731381928 +0200
@@ -185,7 +185,7 @@
                local attr_type, attr_len = struct.unpack(">I2I2", attr_hdr); 
--luacheck: ignore 211/attr_type
                if attr_len == 0 then
                        table.insert(self.attributes, attr_hdr);
-                       pos = pos + 20;
+                       pos = pos + 4;
                else
                        local data = bytes:sub(pos + 4, pos + 3 + attr_len);
                        assert(#data == attr_len, "packet truncated in 
attribute value");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/net/websocket.lua 
new/prosody-13.0.6/net/websocket.lua
--- old/prosody-13.0.5/net/websocket.lua        2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/net/websocket.lua        2026-05-27 15:57:49.731381928 
+0200
@@ -240,7 +240,7 @@
                insecure = ex.insecure;
        }, function(b, c, r, http_req)
                if c ~= 101
-                  or r.headers["connection"]:lower() ~= "upgrade"
+                  or (r.headers["connection"] or ""):lower() ~= "upgrade"
                   or r.headers["upgrade"] ~= "websocket"
                   or r.headers["sec-websocket-accept"] ~= 
base64.encode(sha1(key .. "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"))
                   or (protocol and not 
protocol[r.headers["sec-websocket-protocol"]])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/plugins/mod_admin_shell.lua 
new/prosody-13.0.6/plugins/mod_admin_shell.lua
--- old/prosody-13.0.5/plugins/mod_admin_shell.lua      2026-04-29 
13:35:49.419142653 +0200
+++ new/prosody-13.0.6/plugins/mod_admin_shell.lua      2026-05-27 
15:57:49.731381928 +0200
@@ -1880,9 +1880,6 @@
                        return promise.reject("Unacceptable password");
                end
 
-               self.session.print(("PW: %q"):format(raw_password));
-               self.session.print(("PW2: %q"):format(prepped_password));
-
                local ok, err = um.create_user_with_role(username, 
prepped_password, host, role);
                if not ok then
                        return promise.reject("Could not create user: "..err);
@@ -1954,9 +1951,6 @@
                        return promise.reject("Unacceptable password");
                end
 
-               self.session.print(("PW: %q"):format(raw_password));
-               self.session.print(("PW2: %q"):format(prepped_password));
-
                local ok, err = um.set_password(username, prepped_password, 
host, nil);
                if ok then
                        return "User password changed";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/plugins/mod_carbons.lua 
new/prosody-13.0.6/plugins/mod_carbons.lua
--- old/prosody-13.0.5/plugins/mod_carbons.lua  2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/plugins/mod_carbons.lua  2026-05-27 15:57:49.731381928 
+0200
@@ -141,7 +141,7 @@
                                -- Create the carbon copy and wrap it as per 
the Stanza Forwarding XEP
                                local copy = st.clone(stanza);
                                if c2s and not orig_to then
-                                       stanza.attr.to = bare_from;
+                                       copy.attr.to = bare_from;
                                end
                                copy.attr.xmlns = "jabber:client";
                                carbon = st.message{ from = bare_jid, type = 
orig_type, }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/plugins/mod_cloud_notify.lua 
new/prosody-13.0.6/plugins/mod_cloud_notify.lua
--- old/prosody-13.0.5/plugins/mod_cloud_notify.lua     2026-04-29 
13:35:49.419142653 +0200
+++ new/prosody-13.0.6/plugins/mod_cloud_notify.lua     2026-05-27 
15:57:49.731381928 +0200
@@ -397,8 +397,8 @@
                                id2identifier[stanza_id] = push_identifier;
                                
module:send_iq(push_publish):next(handle_push_success, 
handle_push_error):finally(function ()
                                        -- unhook iq handlers for this 
identifier (if possible)
-                                       id2node[stanza.attr.id] = nil;
-                                       id2identifier[stanza.attr.id] = nil;
+                                       id2node[stanza_id] = nil;
+                                       id2identifier[stanza_id] = nil;
                                end);
                                pushes = pushes + 1;
                        end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prosody-13.0.5/plugins/mod_debug_stanzas/watcher.lib.lua 
new/prosody-13.0.6/plugins/mod_debug_stanzas/watcher.lib.lua
--- old/prosody-13.0.5/plugins/mod_debug_stanzas/watcher.lib.lua        
2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/plugins/mod_debug_stanzas/watcher.lib.lua        
2026-05-27 15:57:49.731381928 +0200
@@ -59,8 +59,8 @@
        if #active_filter.downstream == 0 then
                filters.remove_filter(session, "stanzas/in", 
active_filter.filter_in);
                filters.remove_filter(session, "stanzas/out", 
active_filter.filter_out);
+               active_filters[session] = nil;
        end
-       active_filters[session] = nil;
 end
 
 local function unsubscribe_all_from_session(session, reason)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/plugins/mod_register_ibr.lua 
new/prosody-13.0.6/plugins/mod_register_ibr.lua
--- old/prosody-13.0.5/plugins/mod_register_ibr.lua     2026-04-29 
13:35:49.419142653 +0200
+++ new/prosody-13.0.6/plugins/mod_register_ibr.lua     2026-05-27 
15:57:49.731381928 +0200
@@ -11,7 +11,7 @@
 local dataform_new = require "prosody.util.dataforms".new;
 local usermanager_user_exists  = require 
"prosody.core.usermanager".user_exists;
 local usermanager_create_user_with_role  = require 
"prosody.core.usermanager".create_user_with_role;
-local usermanager_set_password = require 
"prosody.core.usermanager".create_user;
+local usermanager_set_password = require 
"prosody.core.usermanager".set_password;
 local usermanager_delete_user  = require 
"prosody.core.usermanager".delete_user;
 local nodeprep = require "prosody.util.encodings".stringprep.nodeprep;
 local util_error = require "prosody.util.error";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/plugins/mod_storage_memory.lua 
new/prosody-13.0.6/plugins/mod_storage_memory.lua
--- old/prosody-13.0.5/plugins/mod_storage_memory.lua   2026-04-29 
13:35:49.419142653 +0200
+++ new/prosody-13.0.6/plugins/mod_storage_memory.lua   2026-05-27 
15:57:49.731381928 +0200
@@ -206,7 +206,7 @@
                item.when = new_when;
        end
        if new_with then
-               item.with = new_when;
+               item.with = new_with;
        end
        return true;
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/plugins/mod_vcard.lua 
new/prosody-13.0.6/plugins/mod_vcard.lua
--- old/prosody-13.0.5/plugins/mod_vcard.lua    2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/plugins/mod_vcard.lua    2026-05-27 15:57:49.731381928 
+0200
@@ -68,5 +68,6 @@
 
        local photo_b64 = photo:get_child_text("BINVAL");
        local photo_raw = photo_b64 and base64.decode(photo_b64);
+       if not photo_raw then return end
        return (sha1(photo_raw, true));
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/prosody.release 
new/prosody-13.0.6/prosody.release
--- old/prosody-13.0.5/prosody.release  2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/prosody.release  2026-05-27 15:57:49.731381928 +0200
@@ -1 +1 @@
-13.0.5
+13.0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/spec/util_ringbuffer_spec.lua 
new/prosody-13.0.6/spec/util_ringbuffer_spec.lua
--- old/prosody-13.0.5/spec/util_ringbuffer_spec.lua    2026-04-29 
13:35:49.419142653 +0200
+++ new/prosody-13.0.6/spec/util_ringbuffer_spec.lua    2026-05-27 
15:57:49.731381928 +0200
@@ -35,6 +35,51 @@
                end);
        end);
 
+       describe(":find", function ()
+               local function test_find(b, str, expected)
+                       if expected ~= nil then
+                               assert.equal(expected, b:find(str));
+                       else
+                               assert.is_nil(b:find(str));
+                       end
+               end
+
+               it("works", function ()
+                       local b = rb.new();
+                       assert.truthy(b:write("hello world"));
+                       test_find(b, "world", 7);
+               end);
+
+               it("works across wraps", function ()
+                       local b = rb.new(5);
+                       assert.truthy(b:write("12345"));
+                       assert.equal("123", b:read(3));
+                       assert.truthy(b:write("678"));
+                       test_find(b, "45678", 1);
+                       test_find(b, "567", 2);
+                       test_find(b, "56", 2);
+                       test_find(b, "5", 2);
+                       test_find(b, "6", 3);
+                       test_find(b, "7", 4);
+                       test_find(b, "8", 5);
+                       test_find(b, "9", nil);
+               end);
+
+               it("no match when the needle is larger than the buffer", 
function ()
+                       for i = 5, 11 do
+                               local b = rb.new(i);
+                               assert.truthy(b:write("hello"));
+                               test_find(b, "hello world", nil);
+                       end
+               end);
+
+               it("no match when the needle is an empty string", function ()
+                       local b = rb.new(5);
+                       assert.truthy(b:write("hello"));
+                       test_find(b, "", nil);
+               end);
+       end);
+
        describe(":sub", function ()
                -- Helper function to compare buffer:sub() with string:sub()
                local function test_sub(b, x, y)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util/dataforms.lua 
new/prosody-13.0.6/util/dataforms.lua
--- old/prosody-13.0.5/util/dataforms.lua       2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util/dataforms.lua       2026-05-27 15:57:49.731381928 
+0200
@@ -252,7 +252,7 @@
                                err[#err+1] = ("Invalid JID: " .. raw_value);
                        end
                end
-               if #result > 0 then
+               if #result > 0 or #err > 0 then
                        return result, (#err > 0 and t_concat(err, "\n") or 
nil);
                elseif required then
                        return nil, "Required value missing";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util/datamanager.lua 
new/prosody-13.0.6/util/datamanager.lua
--- old/prosody-13.0.5/util/datamanager.lua     2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util/datamanager.lua     2026-05-27 15:57:49.731381928 
+0200
@@ -668,7 +668,7 @@
                                        if lfs.attributes(getpath(username, 
host, store_name, typ), "mode") then
                                                return store_name;
                                        end
-                               elseif lfs.attributes(node, "mode") == "file" 
then
+                               elseif lfs.attributes(store_dir..node, "mode") 
== "file" then
                                        local file, ext = 
node:match("^(.*)%.([dalist]+)$");
                                        if ext == typ then
                                                return decode(file)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util/jsonschema.lua 
new/prosody-13.0.6/util/jsonschema.lua
--- old/prosody-13.0.5/util/jsonschema.lua      2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util/jsonschema.lua      2026-05-27 15:57:49.731381928 
+0200
@@ -126,7 +126,7 @@
        end
 
        if type(data) == "number" then
-               if schema.multipleOf and (data == 0 or data % schema.multipleOf 
~= 0) then
+               if schema.multipleOf and data ~= 0 and data % schema.multipleOf 
~= 0 then
                        table.insert(errs, mkerr(sloc .. "/luaPattern", iloc, 
"not a multiple"))
                        return false, errs
                end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util/paths.lua 
new/prosody-13.0.6/util/paths.lua
--- old/prosody-13.0.5/util/paths.lua   2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/util/paths.lua   2026-05-27 15:57:49.731381928 +0200
@@ -62,7 +62,7 @@
                package.path = 
package.path..lua_path_sep..installer_plugin_path..dir_sep.."share"..sub_path.."?.lua";
                package.path = 
package.path..lua_path_sep..installer_plugin_path..dir_sep.."share"..sub_path.."?"..dir_sep.."init.lua";
        end
-       if not string.find(package.path, installer_plugin_path, 1, true) then
+       if not string.find(package.cpath, installer_plugin_path, 1, true) then
                package.cpath = 
package.cpath..lua_path_sep..installer_plugin_path..dir_sep.."lib"..sub_path.."?.so";
        end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util/pubsub.lua 
new/prosody-13.0.6/util/pubsub.lua
--- old/prosody-13.0.5/util/pubsub.lua  2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/util/pubsub.lua  2026-05-27 15:57:49.731381928 +0200
@@ -305,7 +305,7 @@
                        return ok, err;
                end
        elseif jid_sub and not self:may(node, jid, "be_subscribed") then
-               local ok, err = self:add_subscription(node, true, jid);
+               local ok, err = self:remove_subscription(node, true, jid);
                if not ok then
                        return ok, err;
                end
@@ -511,7 +511,7 @@
        if self.config.nodestore then
                local ok, err = delete_node_in_store(self, node);
                if not ok then
-                       self.nodes[node] = nil;
+                       self.nodes[node] = node_obj;
                        return ok, err;
                end
        end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util/timer.lua 
new/prosody-13.0.6/util/timer.lua
--- old/prosody-13.0.5/util/timer.lua   2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/util/timer.lua   2026-05-27 15:57:49.731381928 +0200
@@ -109,7 +109,7 @@
 local function reschedule(id, delay)
        local current_time = get_time();
        local event_time = current_time + delay;
-       h:reprioritize(id, delay);
+       h:reprioritize(id, event_time);
        if next_time == nil or event_time < next_time then
                next_time = event_time;
                _add_task(next_time - current_time, _on_timer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util-src/crypto.c 
new/prosody-13.0.6/util-src/crypto.c
--- old/prosody-13.0.5/util-src/crypto.c        2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util-src/crypto.c        2026-05-27 15:57:49.731381928 
+0200
@@ -132,7 +132,7 @@
        luaL_Buffer sigbuf;
 
        size_t msg_len;
-       const unsigned char* msg = (unsigned char*)lua_tolstring(L, 2, 
&msg_len);
+       const unsigned char* msg = (unsigned char*)luaL_checklstring(L, 2, 
&msg_len);
 
        size_t sig_len;
        unsigned char *sig = NULL;
@@ -150,16 +150,13 @@
                return 1;
        }
 
-       // COMPAT w/ Lua 5.1
-       luaL_buffinit(L, &sigbuf);
-       sig = memset(luaL_prepbuffer(&sigbuf), 0, sig_len);
+       sig = (unsigned char *)luaL_buffinitsize(L, &sigbuf, sig_len);
 
        if(EVP_DigestSign(md_ctx, sig, &sig_len, msg, msg_len) != 1) {
                lua_pushnil(L);
        }
        else {
-               luaL_addsize(&sigbuf, sig_len);
-               luaL_pushresult(&sigbuf);
+               luaL_pushresultsize(&sigbuf, sig_len);
                return 1;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util-src/poll.c 
new/prosody-13.0.6/util-src/poll.c
--- old/prosody-13.0.5/util-src/poll.c  2026-04-29 13:35:49.419142653 +0200
+++ new/prosody-13.0.6/util-src/poll.c  2026-05-27 15:57:49.731381928 +0200
@@ -139,7 +139,7 @@
 #endif
 #ifdef USE_SELECT
 
-       if(fd > FD_SETSIZE) {
+       if(fd >= FD_SETSIZE) {
                luaL_pushfail(L);
                lua_pushstring(L, strerror(EBADF));
                lua_pushinteger(L, EBADF);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util-src/pposix.c 
new/prosody-13.0.6/util-src/pposix.c
--- old/prosody-13.0.5/util-src/pposix.c        2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util-src/pposix.c        2026-05-27 15:57:49.731381928 
+0200
@@ -169,6 +169,7 @@
        "local7",
        "lpr",
        "mail",
+       "news",
        "syslog",
        "user",
        "uucp",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util-src/ringbuffer.c 
new/prosody-13.0.6/util-src/ringbuffer.c
--- old/prosody-13.0.5/util-src/ringbuffer.c    2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util-src/ringbuffer.c    2026-05-27 15:57:49.731381928 
+0200
@@ -82,7 +82,7 @@
        size_t i, j;
        int m;
 
-       if(b->rpos == b->wpos) { /* empty */
+       if(l > b->blen || l == 0) { /* needle is too large or too small */
                return 0;
        }
 
@@ -99,7 +99,7 @@
                                }
 
                        if(m) {
-                               return i + l;
+                               return i + 1;
                        }
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.5/util-src/signal.c 
new/prosody-13.0.6/util-src/signal.c
--- old/prosody-13.0.5/util-src/signal.c        2026-04-29 13:35:49.419142653 
+0200
+++ new/prosody-13.0.6/util-src/signal.c        2026-05-27 15:57:49.731381928 
+0200
@@ -498,9 +498,10 @@
                return 1;
        }
 
-       for(int i = signalfd_num; i > 0; i--) {
+       for(int i = signalfd_num - 1; i >= 0; i--) {
                if(signalfds[i].fd == sfd->fd) {
-                       signalfds[i] = signalfds[signalfd_num--];
+                       signalfds[i] = signalfds[--signalfd_num];
+                       break;
                }
        }
 

Reply via email to