[vlc-commits] [Git][videolan/vlc][master] 2 commits: upnp: comment unused string
Steve Lhomme (@robUx4)
gitlab at videolan.org
Sat Apr 25 07:52:48 UTC 2026
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
ce626058 by Steve Lhomme at 2026-04-25T01:23:27+00:00
upnp: comment unused string
- - - - -
e6ea837e by Steve Lhomme at 2026-04-25T01:23:27+00:00
contrib: upnp: fix bogus port parsing
- - - - -
6 changed files:
- + contrib/src/upnp/0006-uri.c-Dominik-Blain-s-fix-for-vulnerability.patch
- + contrib/src/upnp/0007-cmake-add-missing-file-in-Windows-compilation.patch
- contrib/src/upnp/fix-reuseaddr-option.patch
- contrib/src/upnp/miniserver.patch
- contrib/src/upnp/rules.mak
- modules/control/upnp_server/FileHandler.cpp
Changes:
=====================================
contrib/src/upnp/0006-uri.c-Dominik-Blain-s-fix-for-vulnerability.patch
=====================================
@@ -0,0 +1,31 @@
+From ee2c4488a5318c68fafe9f5a07529f8cac746bc3 Mon Sep 17 00:00:00 2001
+From: Marcelo Roberto Jimenez <marcelo.jimenez at gmail.com>
+Date: Sat, 18 Apr 2026 13:01:35 -0300
+Subject: [PATCH 6/7] uri.c: Dominik Blain's fix for vulnerability
+
+See:
+https://github.com/pupnp/pupnp/security/advisories/GHSA-q522-6w45-4j58
+
+Signed-off-by: Marcelo Roberto Jimenez <marcelo.jimenez at gmail.com>
+---
+ upnp/src/genlib/net/uri/uri.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/upnp/src/genlib/net/uri/uri.c b/upnp/src/genlib/net/uri/uri.c
+index 772d671e..5064d3f1 100644
+--- a/upnp/src/genlib/net/uri/uri.c
++++ b/upnp/src/genlib/net/uri/uri.c
+@@ -403,6 +403,10 @@ static int parse_hostport(
+ srvport = c;
+ while (*c != '\0' && isdigit(*c))
+ c++;
++ long port_l = strtol(srvport, NULL, 10);
++ if (port_l <= 0 || port_l > 65535) {
++ return UPNP_E_INVALID_URL;
++ }
+ port = (unsigned short int)atoi(srvport);
+ if (port == 0)
+ /* Bad port number. */
+--
+2.52.0.windows.1
+
=====================================
contrib/src/upnp/0007-cmake-add-missing-file-in-Windows-compilation.patch
=====================================
@@ -0,0 +1,31 @@
+From 9e54cdc85fff007de22c4f9de45d01a38ed13f84 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Fri, 16 Jan 2026 10:24:58 +0100
+Subject: [PATCH 7/7] cmake: add missing file in Windows compilation
+
+It's compiled with the autotools build but not CMake.
+This is only useful when compiling for older targets than Windows Vista.
+---
+ upnp/CMakeLists.txt | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/upnp/CMakeLists.txt b/upnp/CMakeLists.txt
+index 594aaffa..6fae57b7 100644
+--- a/upnp/CMakeLists.txt
++++ b/upnp/CMakeLists.txt
+@@ -43,6 +43,12 @@ set (UPNP_SOURCES
+ src/urlconfig/urlconfig.c
+ )
+
++if(WIN32)
++ list (APPEND UPNP_SOURCES
++ src/inet_pton.c
++ )
++endif()
++
+ if (UPNP_ENABLE_GENA)
+ list (APPEND UPNP_SOURCES
+ src/gena/gena_device.c
+--
+2.52.0.windows.1
+
=====================================
contrib/src/upnp/fix-reuseaddr-option.patch
=====================================
@@ -1,7 +1,23 @@
-diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
---- upnp/upnp/src/ssdp/ssdp_server.c 2022-08-03 16:05:12
-+++ upnp/upnp/src/ssdp/ssdp_server.c 2023-05-11 12:13:42
-@@ -928,6 +928,7 @@
+From b835526d3306cac7fe104e8ba460a138b2afc471 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Felix=20K=C3=BChne?= <fkuehne at videolan.org>
+Date: Thu, 11 May 2023 12:35:19 +0200
+Subject: [PATCH 4/7] disable usage of reuseaddr on iOS/tvOS and fix option
+
+Use of SO_REUSEADDR leads to a busy loop within libupnp and very high
+battery usage. This disables the option and actually fixes its
+functionality by patching the library. Patch to be upstreamed.
+
+According to App Store analytics, this is the most prominent source of
+high CPU load and battery use.
+---
+ upnp/src/ssdp/ssdp_server.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/upnp/src/ssdp/ssdp_server.c b/upnp/src/ssdp/ssdp_server.c
+index 28c7b5a1..f5f60b65 100644
+--- a/upnp/src/ssdp/ssdp_server.c
++++ b/upnp/src/ssdp/ssdp_server.c
+@@ -931,6 +931,7 @@ static int create_ssdp_sock_v4(
return UPNP_E_OUTOF_SOCKET;
}
@@ -9,7 +25,7 @@ diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
onOff = 1;
ret = setsockopt(*ssdpSock,
SOL_SOCKET,
-@@ -945,6 +946,7 @@
+@@ -948,6 +949,7 @@ static int create_ssdp_sock_v4(
ret = UPNP_E_SOCKET_ERROR;
goto error_handler;
}
@@ -17,7 +33,7 @@ diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
#if (defined(BSD) && !defined(__GNU__)) || defined(__APPLE__)
onOff = 1;
ret = setsockopt(*ssdpSock,
-@@ -1133,6 +1135,7 @@
+@@ -1126,6 +1128,7 @@ static int create_ssdp_sock_v6(
return UPNP_E_OUTOF_SOCKET;
}
onOff = 1;
@@ -25,7 +41,7 @@ diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
ret = setsockopt(*ssdpSock,
SOL_SOCKET,
SO_REUSEADDR,
-@@ -1149,6 +1152,7 @@
+@@ -1142,6 +1145,7 @@ static int create_ssdp_sock_v6(
ret = UPNP_E_SOCKET_ERROR;
goto error_handler;
}
@@ -33,7 +49,7 @@ diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
#if (defined(BSD) && !defined(__GNU__)) || defined(__APPLE__)
onOff = 1;
ret = setsockopt(*ssdpSock,
-@@ -1313,6 +1317,7 @@
+@@ -1306,6 +1310,7 @@ static int create_ssdp_sock_v6_ula_gua(
return UPNP_E_OUTOF_SOCKET;
}
onOff = 1;
@@ -41,7 +57,7 @@ diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
ret = setsockopt(*ssdpSock,
SOL_SOCKET,
SO_REUSEADDR,
-@@ -1329,6 +1334,7 @@
+@@ -1322,6 +1327,7 @@ static int create_ssdp_sock_v6_ula_gua(
ret = UPNP_E_SOCKET_ERROR;
goto error_handler;
}
@@ -49,3 +65,6 @@ diff -ru upnp/upnp/src/ssdp/ssdp_server.c upnp/upnp/src/ssdp/ssdp_server.c
#if (defined(BSD) && !defined(__GNU__)) || defined(__APPLE__)
onOff = 1;
ret = setsockopt(*ssdpSock,
+--
+2.52.0.windows.1
+
=====================================
contrib/src/upnp/miniserver.patch
=====================================
@@ -1,17 +1,17 @@
-From e238e20db9153d4a066cbcce1fdb5f95ada45fbf Mon Sep 17 00:00:00 2001
-From: Alaric Senat <dev.asenat at posteo.net>
-Date: Wed, 10 Mar 2021 12:01:18 +0100
-Subject: miniserver
+From f81433ed19efe3bb59eff68ab391c37eb37404ad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <funman at videolan.org>
+Date: Mon, 8 Apr 2013 12:29:31 +0200
+Subject: [PATCH 3/7] fix build
---
upnp/src/api/upnpapi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/upnp/src/api/upnpapi.c b/upnp/src/api/upnpapi.c
-index 3ad4658..b0ee7db 100644
+index b4b7c4ab..5485a3ed 100644
--- a/upnp/src/api/upnpapi.c
+++ b/upnp/src/api/upnpapi.c
-@@ -387,13 +387,13 @@ static int UpnpInitPreamble(void)
+@@ -455,13 +455,13 @@ static int UpnpInitPreamble(void)
return retVal;
}
@@ -27,5 +27,5 @@ index 3ad4658..b0ee7db 100644
SetGenaCallback(genaCallback);
#endif
--
-2.29.2
+2.52.0.windows.1
=====================================
contrib/src/upnp/rules.mak
=====================================
@@ -43,6 +43,8 @@ ifdef HAVE_IOS
$(APPLY) $(SRC)/upnp/fix-reuseaddr-option.patch
endif
$(APPLY) $(SRC)/upnp/0001-Don-t-assume-strndup-to-be-missing-on-Windows.patch
+ $(APPLY) $(SRC)/upnp/0006-uri.c-Dominik-Blain-s-fix-for-vulnerability.patch
+ $(APPLY) $(SRC)/upnp/0007-cmake-add-missing-file-in-Windows-compilation.patch
$(MOVE)
.upnp: upnp toolchain.cmake
=====================================
modules/control/upnp_server/FileHandler.cpp
=====================================
@@ -44,7 +44,7 @@
// static constexpr char DLNA_TRANSFER_MODE[] = "transfermode.dlna.org";
static constexpr char DLNA_CONTENT_FEATURE[] = "contentfeatures.dlna.org";
-static constexpr char DLNA_TIME_SEEK_RANGE[] = "timeseekrange.dlna.org";
+// static constexpr char DLNA_TIME_SEEK_RANGE[] = "timeseekrange.dlna.org";
/// Convenient C++ replacement of vlc_ml_file_t to not have to deal with allocations
struct MLFile
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/2c0207e784e609060cd2bcaddcd735a8c3bb9da6...e6ea837e4d317078900a9f0f3dda3d4e1cbeb056
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/2c0207e784e609060cd2bcaddcd735a8c3bb9da6...e6ea837e4d317078900a9f0f3dda3d4e1cbeb056
You're receiving this email because of your account on code.videolan.org.
More information about the vlc-commits
mailing list