[vlc-commits] [Git][videolan/vlc][master] sout: dlna: fix base_url, device_url leaks

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Oct 16 06:53:19 UTC 2025



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
b8805d17 by Johannes Kauffmann at 2025-10-16T06:31:06+00:00
sout: dlna: fix base_url, device_url leaks

Use RAII to manage base_url and device_url. Fixes leaks when an
exception is thrown.

- - - - -


1 changed file:

- modules/stream_out/dlna/dlna.cpp


Changes:

=====================================
modules/stream_out/dlna/dlna.cpp
=====================================
@@ -886,8 +886,10 @@ int OpenSout( vlc_object_t *p_this )
 
     int http_port = var_InheritInteger(p_stream, SOUT_CFG_PREFIX "http-port");
     bool b_supports_video = var_GetBool(p_stream, SOUT_CFG_PREFIX "video");
-    char *base_url = var_GetNonEmptyString(p_stream, SOUT_CFG_PREFIX "base_url");
-    char *device_url = var_GetNonEmptyString(p_stream, SOUT_CFG_PREFIX "url");
+    auto base_url = vlc::wrap_cptr(
+        var_GetNonEmptyString(p_stream, SOUT_CFG_PREFIX "base_url"));
+    auto device_url = vlc::wrap_cptr(
+        var_GetNonEmptyString(p_stream, SOUT_CFG_PREFIX "url"));
     if ( device_url == nullptr)
     {
         msg_Err( p_stream, "missing Url" );
@@ -907,7 +909,7 @@ int OpenSout( vlc_object_t *p_this )
         goto error;
     try {
         p_sys->renderer = std::make_shared<MediaRenderer>(p_stream,
-                            p_sys->p_upnp, base_url, device_url);
+                            p_sys->p_upnp, base_url.get(), device_url.get());
     }
     catch ( const std::bad_alloc& ) {
         msg_Err( p_stream, "Failed to create a MediaRenderer");
@@ -920,14 +922,9 @@ int OpenSout( vlc_object_t *p_this )
     p_stream->p_sys = p_sys;
     p_stream->ops = &ops;
 
-    free(base_url);
-    free(device_url);
-
     return VLC_SUCCESS;
 
 error:
-    free(base_url);
-    free(device_url);
     delete p_sys;
     return VLC_EGENERIC;
 }



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/b8805d176bbdb2add99a512405c88d32cb5c9302

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/b8805d176bbdb2add99a512405c88d32cb5c9302
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list