summarylogtreecommitdiffstats
path: root/ceph-17.2.5-rgw-client-boost-string-view.patch
AgeCommit message (Collapse)Author
2023-03-06pkgbuild: add ceph-17.2.5-rgw-client-boost-string-view.patchBazaah
So long story short, boost 1.81 has fairly large breaking API changes, as they migrated to use an internal string_view shim rather than std::string_view, across the entire beast codebase. Therefore, we remove any attempts to convert to std::string_view from boost::core::string_view, as it implicitly handles conversions to std::string where needed (like std::string_view). Long story. boostorg/beast#2451 introduced a change in their string_view type defs for beast, which ultimately removed the to_string() method inherited from boost::string_view (which is different to boost::core), effectively changing the type of most of the returned values in rgw_asio_client.cc's header manipulation logic. However, this new shim string_view implicitly converts to std::string, which is needed by RGWEnv::set, hence our removal of the various to_string()s scattered across the file. Notably, RGWEnv::set is remarkably strict in its accepted values, so I trust that if this compiles we have introduced a subtle use after free vis-a-vis all these string_views flying around. References: https://github.com/boostorg/beast/pull/2451 References: https://github.com/ceph/ceph/blob/v17.2.5/src/rgw/rgw_asio_client.cc References: https://github.com/boostorg/beast/issues/2594#issuecomment-1360956011 References: https://github.com/ceph/ceph/blob/v17.2.5/src/rgw/rgw_env.cc#L22