Hello community, here is the log from the commit of package biboumi for openSUSE:Factory checked in at 2020-08-29 20:37:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/biboumi (Old) and /work/SRC/openSUSE:Factory/.biboumi.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "biboumi" Sat Aug 29 20:37:35 2020 rev:3 rq:829827 version:8.5 Changes: -------- --- /work/SRC/openSUSE:Factory/biboumi/biboumi.changes 2018-06-20 15:33:16.393904552 +0200 +++ /work/SRC/openSUSE:Factory/.biboumi.new.3399/biboumi.changes 2020-08-29 20:37:52.193352242 +0200 @@ -1,0 +2,7 @@ +Wed Aug 26 19:30:32 UTC 2020 - Dirk Mueller <[email protected]> + +- update to 8.5: + * Fix a build failure with GCC 10 + * Fix a possible crash that could be caused by a very well timed identd query + +------------------------------------------------------------------- Old: ---- biboumi-8.3.tar.xz New: ---- biboumi-8.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ biboumi.spec ++++++ --- /var/tmp/diff_new_pack.MStnCH/_old 2020-08-29 20:37:54.061353029 +0200 +++ /var/tmp/diff_new_pack.MStnCH/_new 2020-08-29 20:37:54.065353030 +0200 @@ -1,7 +1,7 @@ # # spec file for package biboumi # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # Copyright (c) 2018 Tomáš Čech <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -13,18 +13,18 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: biboumi -Version: 8.3 +Version: 8.5 Release: 0 Summary: XMPP to IRC gateway License: Zlib Group: Productivity/Networking/IRC URL: https://biboumi.louiz.org/ -Source0: %{name}-%{version}.tar.xz +Source0: https://git.louiz.org/biboumi/snapshot/biboumi-%{version}.tar.xz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -67,7 +67,7 @@ %build %cmake -make %{?_smp_mflags} +%make_build %install %cmake_install ++++++ biboumi-8.3.tar.xz -> biboumi-8.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/CHANGELOG.rst new/biboumi-8.5/CHANGELOG.rst --- old/biboumi-8.3/CHANGELOG.rst 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/CHANGELOG.rst 2020-05-09 14:44:00.000000000 +0200 @@ -1,3 +1,14 @@ +Version 8.5 - 2020-05-09 +======================== + +- Fix a build failure with GCC 10 + +Version 8.4 - 2020-02-25 +======================== + +- Fix a possible crash that could be caused by a very well timed identd + query + Version 8.3 - 2018-06-01 ======================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/CMakeLists.txt new/biboumi-8.5/CMakeLists.txt --- old/biboumi-8.3/CMakeLists.txt 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/CMakeLists.txt 2020-05-09 14:44:00.000000000 +0200 @@ -3,7 +3,7 @@ project(biboumi) set(${PROJECT_NAME}_VERSION_MAJOR 8) -set(${PROJECT_NAME}_VERSION_MINOR 3) +set(${PROJECT_NAME}_VERSION_MINOR 5) set(${PROJECT_NAME}_VERSION_SUFFIX "") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/packaging/biboumi.spec.cmake new/biboumi-8.5/packaging/biboumi.spec.cmake --- old/biboumi-8.3/packaging/biboumi.spec.cmake 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/packaging/biboumi.spec.cmake 2020-05-09 14:44:00.000000000 +0200 @@ -63,6 +63,12 @@ %changelog +* Sat May 9 2020 Le Coz Florent <[email protected]> - 8.5-1 + Update to version 8.5 + +* Tue Feb 25 2020 Le Coz Florent <[email protected]> - 8.4-1 + Update to version 8.4 + * Wed Jun 1 2018 Le Coz Florent <[email protected]> - 8.3-1 Update to version 8.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/identd/identd_server.hpp new/biboumi-8.5/src/identd/identd_server.hpp --- old/biboumi-8.3/src/identd/identd_server.hpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/identd/identd_server.hpp 2020-05-09 14:44:00.000000000 +0200 @@ -24,6 +24,7 @@ if (this->poller->is_managing_socket(this->socket)) this->poller->remove_socket_handler(this->socket); ::close(this->socket); + this->sockets.clear(); } void clean() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/identd/identd_socket.cpp new/biboumi-8.5/src/identd/identd_socket.cpp --- old/biboumi-8.3/src/identd/identd_socket.cpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/identd/identd_socket.cpp 2020-05-09 14:44:00.000000000 +0200 @@ -25,10 +25,12 @@ std::istringstream line(this->in_buf.substr(0, line_end)); this->consume_in_buffer(line_end + 1); - uint16_t local_port; - uint16_t remote_port; + uint16_t local_port{}; + uint16_t remote_port{}; char sep; line >> local_port >> sep >> remote_port; + if (line.fail()) // Data did not match the expected format, ignore the line entirely + continue; const auto& xmpp = this->server.get_biboumi_component(); auto response = this->generate_answer(xmpp, local_port, remote_port); @@ -47,7 +49,7 @@ { for (const auto& pair: bridge->get_irc_clients()) { - if (pair.second->match_port_pairt(local, remote)) + if (pair.second->match_port_pair(local, remote)) { std::ostringstream os; os << local << " , " << remote << " : USERID : OTHER : " << hash_jid(bridge->get_bare_jid()) << "\r\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/network/dns_handler.cpp new/biboumi-8.5/src/network/dns_handler.cpp --- old/biboumi-8.3/src/network/dns_handler.cpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/network/dns_handler.cpp 2020-05-09 14:44:00.000000000 +0200 @@ -9,6 +9,7 @@ #include <udns.h> #include <cerrno> +#include <stdexcept> #include <cstring> class Resolver; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/network/resolver.cpp new/biboumi-8.5/src/network/resolver.cpp --- old/biboumi-8.3/src/network/resolver.cpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/network/resolver.cpp 2020-05-09 14:44:00.000000000 +0200 @@ -21,6 +21,7 @@ {DNS_E_TEMPFAIL, "Timeout while contacting DNS servers"}, {DNS_E_PROTOCOL, "Misformatted DNS reply"}, {DNS_E_NXDOMAIN, "Domain name not found"}, + {DNS_E_NODATA, "Domain name not found"}, {DNS_E_NOMEM, "Out of memory"}, {DNS_E_BADQUERY, "Misformatted domain name"} }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/network/tcp_client_socket_handler.cpp new/biboumi-8.5/src/network/tcp_client_socket_handler.cpp --- old/biboumi-8.3/src/network/tcp_client_socket_handler.cpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/network/tcp_client_socket_handler.cpp 2020-05-09 14:44:00.000000000 +0200 @@ -261,8 +261,10 @@ return this->port; } -bool TCPClientSocketHandler::match_port_pairt(const uint16_t local, const uint16_t remote) const +bool TCPClientSocketHandler::match_port_pair(const uint16_t local, const uint16_t remote) const { + if (!this->is_connected()) + return false; const auto remote_port = static_cast<uint16_t>(std::stoi(this->port)); - return this->is_connected() && local == this->local_port && remote == remote_port; + return local == this->local_port && remote == remote_port; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/network/tcp_client_socket_handler.hpp new/biboumi-8.5/src/network/tcp_client_socket_handler.hpp --- old/biboumi-8.3/src/network/tcp_client_socket_handler.hpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/network/tcp_client_socket_handler.hpp 2020-05-09 14:44:00.000000000 +0200 @@ -34,7 +34,7 @@ /** * Whether or not this connection is using the two given TCP ports. */ - bool match_port_pairt(const uint16_t local, const uint16_t remote) const; + bool match_port_pair(const uint16_t local, const uint16_t remote) const; protected: bool hostname_resolution_failed; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/utils/empty_if_fixed_server.hpp new/biboumi-8.5/src/utils/empty_if_fixed_server.hpp --- old/biboumi-8.3/src/utils/empty_if_fixed_server.hpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/utils/empty_if_fixed_server.hpp 2020-05-09 14:44:00.000000000 +0200 @@ -7,17 +7,11 @@ namespace utils { - inline std::string empty_if_fixed_server(std::string&& str) + inline const std::string& empty_if_fixed_server(const std::string& str) { + static const std::string empty{}; if (!Config::get("fixed_irc_server", "").empty()) - return {}; - return str; - } - - inline std::string empty_if_fixed_server(const std::string& str) - { - if (!Config::get("fixed_irc_server", "").empty()) - return {}; + return empty; return str; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/src/utils/get_first_non_empty.hpp new/biboumi-8.5/src/utils/get_first_non_empty.hpp --- old/biboumi-8.3/src/utils/get_first_non_empty.hpp 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/src/utils/get_first_non_empty.hpp 2020-05-09 14:44:00.000000000 +0200 @@ -6,13 +6,13 @@ bool is_empty(const int& val); template <typename T> -T get_first_non_empty(T&& last) +T& get_first_non_empty(T&& last) { return last; } template <typename T, typename... Args> -T get_first_non_empty(T&& first, Args&&... args) +T& get_first_non_empty(T&& first, Args&&... args) { if (!is_empty(first)) return first; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/biboumi-8.3/tests/end_to_end/__main__.py new/biboumi-8.5/tests/end_to_end/__main__.py --- old/biboumi-8.3/tests/end_to_end/__main__.py 2018-06-01 12:43:34.000000000 +0200 +++ new/biboumi-8.5/tests/end_to_end/__main__.py 2020-05-09 14:44:00.000000000 +0200 @@ -108,10 +108,10 @@ if self.biboumi: self.biboumi.stop() - @asyncio.coroutine - def accept_routine(self): - self.accepting_server = yield from self.loop.create_server(lambda: self, - "127.0.0.1", 8811, reuse_address=True) + + async def accept_routine(self): + self.accepting_server = await self.loop.create_server(lambda: self, + "127.0.0.1", 8811, reuse_address=True) def check_stanza_against_all_expected_xpaths(self): pass @@ -220,13 +220,11 @@ self.signal_sent = False self.create = None - @asyncio.coroutine - def start(self): - self.process = yield from self.create - - @asyncio.coroutine - def wait(self): - code = yield from self.process.wait() + async def start(self): + self.process = await self.create + + async def wait(self): + code = await self.process.wait() return code def stop(self):
