On Mon, 14 Sep 2026 15:01:46 +0200,
Theo Buehler <[email protected]> wrote:
> 
> On Mon, Sep 14, 2026 at 02:32:22PM +0200, Sergii Rudchenko wrote:
> > On 9/14/26 10:44 AM, Stuart Henderson wrote:
> > > please use "make update-patches" to generate the patch files; from what
> > you
> > > have now, "make clean; make patch; rm
> > > patches/patch-libs_url_base_edit_params; make update-patches".
> > 
> > Thank you, the updated ports diff is below.
> > 
> > I am not sure if it is worth including the patches for units tests as they
> > have
> > no effect on the resulting package. Leaving it to the committer to decide
> > whether to delete patch-libs_url_test_unit_params_encoded_ref_cpp and
> > patch-libs_url_test_unit_params_ref_cpp.
> 
> There are some whitespace issues in both your diffs and hence they don't
> apply. Here's one that does apply. I think we should only commit the
> actual code change.
> 
> Brad, are you ok with that?
> 

I'd like to add this diff to our boost as well:
https://marc.info/?l=openbsd-ports&m=178886522527685&w=2

The resulted diff for ports is here, and I just started a whole bulk with
it. I do not expect that any of two diffs has any impact and run it just in 
case.

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/boost/Makefile,v
diff -u -p -r1.163 Makefile
--- Makefile    18 May 2026 05:48:17 -0000      1.163
+++ Makefile    14 Sep 2026 13:18:08 -0000
@@ -13,6 +13,8 @@ CATEGORIES=   devel
 SITES=         https://archives.boost.io/release/${VERSION}/source/
 EXTRACT_SUFX=  .tar.bz2
 
+REVISION-main= 0
+
 SO_VERSION=    27.0
 BOOST_LIBS=    boost_atomic-mt \
                boost_charconv-mt boost_charconv \
Index: patches/patch-boost_dll_detail_posix_program_location_impl_hpp
===================================================================
RCS file: patches/patch-boost_dll_detail_posix_program_location_impl_hpp
diff -N patches/patch-boost_dll_detail_posix_program_location_impl_hpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-boost_dll_detail_posix_program_location_impl_hpp      14 Sep 
2026 13:18:08 -0000
@@ -0,0 +1,36 @@
+Add support of getexecpath()
+
+Index: boost/dll/detail/posix/program_location_impl.hpp
+--- boost/dll/detail/posix/program_location_impl.hpp.orig
++++ boost/dll/detail/posix/program_location_impl.hpp
+@@ -96,6 +96,30 @@ namespace boost { namespace dll { namespace detail {
+ 
+ 
+ 
++#elif BOOST_OS_BSD_OPEN
++
++#if !defined(BOOST_DLL_INTERFACE_UNIT)
++#include <errno.h>
++#include <limits.h>
++#include <unistd.h>
++#endif // !defined(BOOST_DLL_INTERFACE_UNIT)
++
++namespace boost { namespace dll { namespace detail {
++    inline boost::dll::fs::path program_location_impl(std::error_code& ec) {
++        ec.clear();
++
++        char path[PATH_MAX];
++        if (getexecpath(path, sizeof(path)) != 0) {
++            ec = std::make_error_code(
++                static_cast<std::errc>(errno)
++            );
++            return boost::dll::fs::path();
++        }
++
++        return boost::dll::fs::path(path);
++    }
++}}} // namespace boost::dll::detail
++
+ #elif BOOST_OS_BSD_NET
+ 
+ namespace boost { namespace dll { namespace detail {
Index: patches/patch-boost_url_impl_url_base_hpp
===================================================================
RCS file: patches/patch-boost_url_impl_url_base_hpp
diff -N patches/patch-boost_url_impl_url_base_hpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-boost_url_impl_url_base_hpp   14 Sep 2026 13:18:08 -0000
@@ -0,0 +1,49 @@
+Fix for URL corruption bug on url.params().append() in Boost 1.91.0
+
+https://github.com/boostorg/url/issues/990
+https://github.com/boostorg/url/pull/990
+
+Index: boost/url/impl/url_base.hpp
+--- boost/url/impl/url_base.hpp.orig
++++ boost/url/impl/url_base.hpp
+@@ -3159,7 +3159,12 @@ edit_params(
+     BOOST_ASSERT(pos1 <= impl_.offset(id_frag));
+ 
+     // calc decoded size of old range,
+-    // minus one if '?' or '&' prefixed
++    // minus one for the leading '?' which is
++    // not counted in decoded_[id_query].
++    // dn0 may be -1 here when the old range is
++    // empty and the query was non-empty; the
++    // matching subtraction on dn below cancels
++    // that out when the delta is taken.
+     auto dn0 =
+         static_cast<std::ptrdiff_t>(
+             detail::decode_bytes_unsafe(
+@@ -3168,8 +3173,6 @@ edit_params(
+                     pos1 - pos0)));
+     if(impl_.len(id_query) > 0)
+         dn0 -= 1;
+-    if(dn0 < 0)
+-        dn0 = 0;
+ 
+ //------------------------------------------------
+ //
+@@ -3267,16 +3270,13 @@ edit_params(
+         }
+     }
+ 
+-    // calc decoded size of new range,
+-    // minus one if '?' or '&' prefixed
++    // calc decoded size of new range; see dn0.
+     auto dn =
+         static_cast<std::ptrdiff_t>(
+             detail::decode_bytes_unsafe(
+                 core::string_view(dest0, dest - dest0)));
+     if(impl_.len(id_query) > 0)
+         dn -= 1;
+-    if(dn < 0)
+-        dn = 0;
+ 
+     if(dn >= dn0)
+         impl_.decoded_[id_query] +=


-- 
wbr, Kirill

Reply via email to