[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