Date: Fri, 12 Jun 2026 21:09:13 +0000 From: Daniel Engberg <diizzy@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: fbb6fa8fab9b - main - net/gerbera: Fix URL parsing with libnpupnp Message-ID: <6a2c7579.264ba.7e235782@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by diizzy: URL: https://cgit.FreeBSD.org/ports/commit/?id=fbb6fa8fab9b5927d4814d2484383e5fac2dcdc3 commit fbb6fa8fab9b5927d4814d2484383e5fac2dcdc3 Author: Daniel Engberg <diizzy@FreeBSD.org> AuthorDate: 2026-06-07 23:14:33 +0000 Commit: Daniel Engberg <diizzy@FreeBSD.org> CommitDate: 2026-06-12 21:08:50 +0000 net/gerbera: Fix URL parsing with libnpupnp Backport upstream commit 3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f Reference: https://github.com/gerbera/gerbera/pull/3882 PR: 295000 Reported by: Heiko Kirschke <heiko.kirschke.orders@posteo.de> --- net/gerbera/Makefile | 1 + ...git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f | 56 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/net/gerbera/Makefile b/net/gerbera/Makefile index 083c637c9aa9..02d0532ca927 100644 --- a/net/gerbera/Makefile +++ b/net/gerbera/Makefile @@ -1,6 +1,7 @@ PORTNAME= gerbera DISTVERSIONPREFIX= v DISTVERSION= 3.2.1 +PORTREVISION= 1 CATEGORIES= net multimedia MAINTAINER= diizzy@FreeBSD.org diff --git a/net/gerbera/files/patch-git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f b/net/gerbera/files/patch-git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f new file mode 100644 index 000000000000..4bd2e0d74895 --- /dev/null +++ b/net/gerbera/files/patch-git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f @@ -0,0 +1,56 @@ +From 3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f Mon Sep 17 00:00:00 2001 +From: Karlchen <k_straussberger@netzland.net> +Date: Sun, 7 Jun 2026 00:21:04 +0200 +Subject: [PATCH] Handle url decoding correctly + +--- + ChangeLog.md | 1 + + ReleaseNotes.md | 1 + + src/upnp/compat.h | 5 +++++ + src/util/url_utils.cc | 3 ++- + 4 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/upnp/compat.h b/src/upnp/compat.h +index 3470efe1d..cb1d91b15 100644 +--- src/upnp/compat.h ++++ src/upnp/compat.h +@@ -46,6 +46,9 @@ static constexpr grb_read_t GRB_READ_ERROR = -1; + #define GrbUpnpFileInfoSetContentType(i, mt) (i)->content_type = std::move((mt)) + #define GrbUpnpGetHeaders(i) (i)->request_headers + #define GrbUpnpSetHeaders(i, h) std::copy((h).begin(), (h).end(), std::back_inserter((i)->response_headers)) ++// npupnp reencodes the query arguments to build a parsable URL. We need another ++// decoding layer when using it. ++#define GrbUrlUnescape(u) urlUnescape(urlUnescape(u)) + + #define UPNP_NEEDS_LITERAL_HOST_REDIRECT + extern "C" void UpnpSetAllowLiteralHostRedirection(int); +@@ -80,6 +83,8 @@ void UpnpSetHeadersCompat(const UpnpFileInfo* fileInfo, const std::map<std::stri + #define GrbUpnpGetHeaders(i) UpnpGetHeadersCompat(i) + #define GrbUpnpSetHeaders(i, h) UpnpSetHeadersCompat(i, h) + ++#define GrbUrlUnescape(u) urlUnescape(u) ++ + #if (UPNP_VERSION <= 11419) or (UPNP_VERSION > 170000 and UPNP_VERSION <= 170110) + // new method added + #define UPNP_NEEDS_CORS +diff --git a/src/util/url_utils.cc b/src/util/url_utils.cc +index 884f23667..3a80e9096 100644 +--- src/util/url_utils.cc ++++ src/util/url_utils.cc +@@ -24,6 +24,7 @@ Gerbera - https://gerbera.io/ + #include "url_utils.h" // API + + #include "exceptions.h" ++#include "upnp/compat.h" + + #include <fmt/format.h> + #if FMT_VERSION >= 100202 +@@ -195,7 +196,7 @@ std::map<std::string, std::string> dictDecode(std::string_view url, bool unEscap + auto key = std::string_view(data, eqPos - data); + auto value = std::string_view(eqPos + 1, ampPos - eqPos - 1); + if (unEscape) { +- dict.try_emplace(urlUnescape(key), urlUnescape(value)); ++ dict.try_emplace(GrbUrlUnescape(key), GrbUrlUnescape(value)); + } else { + dict.emplace(key, value); + }home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a2c7579.264ba.7e235782>
