vlc | branch: master | Hugo Beauzée-Luyssen <[email protected]> | Wed Jan 18 
14:43:22 2017 +0100| [3dfd02234c62f3d00713404090230b53e352b594] | committer: 
Hugo Beauzée-Luyssen

upnp: Fix potential leak on error

Fix CID #1372938

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3dfd02234c62f3d00713404090230b53e352b594
---

 modules/services_discovery/upnp.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/modules/services_discovery/upnp.cpp 
b/modules/services_discovery/upnp.cpp
index a802eed..98afcf8 100644
--- a/modules/services_discovery/upnp.cpp
+++ b/modules/services_discovery/upnp.cpp
@@ -1334,7 +1334,10 @@ UpnpInstanceWrapper 
*UpnpInstanceWrapper::get(vlc_object_t *p_obj, services_disc
     {
         UpnpInstanceWrapper* instance = new(std::nothrow) UpnpInstanceWrapper;
         if ( unlikely( !instance ) )
+        {
+            delete p_server_list;
             return NULL;
+        }
 
     #ifdef UPNP_ENABLE_IPV6
         char* psz_miface = var_InheritString( p_obj, "miface" );
@@ -1349,6 +1352,7 @@ UpnpInstanceWrapper 
*UpnpInstanceWrapper::get(vlc_object_t *p_obj, services_disc
         {
             msg_Err( p_obj, "Initialization failed: %s", UpnpGetErrorMessage( 
i_res ) );
             delete instance;
+            delete p_server_list;
             return NULL;
         }
 
@@ -1360,6 +1364,7 @@ UpnpInstanceWrapper 
*UpnpInstanceWrapper::get(vlc_object_t *p_obj, services_disc
         {
             msg_Err( p_obj, "Client registration failed: %s", 
UpnpGetErrorMessage( i_res ) );
             delete instance;
+            delete p_server_list;
             return NULL;
         }
 
@@ -1371,6 +1376,7 @@ UpnpInstanceWrapper 
*UpnpInstanceWrapper::get(vlc_object_t *p_obj, services_disc
             msg_Err( p_obj, "Failed to set maximum content length: %s",
                     UpnpGetErrorMessage( i_res ));
             delete instance;
+            delete p_server_list;
             return NULL;
         }
         s_instance = instance;

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to