From e5e20a5ee2d4041c3413b2efa234a79aaa65a9ba Mon Sep 17 00:00:00 2001
From: Romain Vimont <rom1v@videolabs.io>
Date: Tue, 23 Nov 2021 14:36:06 +0100
Subject: [PATCH] mtp: remove remaining items on close

Do not leak the remaining items.
---
 modules/services_discovery/mtp.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/modules/services_discovery/mtp.c b/modules/services_discovery/mtp.c
index f04dbd2794e0..0bf15c54f5c3 100644
--- a/modules/services_discovery/mtp.c
+++ b/modules/services_discovery/mtp.c
@@ -190,6 +190,7 @@ static void CloseDevice( services_discovery_t *p_sd )
             }
         }
         free( pp_items );
+        p_sys->pp_items = NULL;
     }
 }
 
@@ -273,6 +274,15 @@ static void Close( vlc_object_t *p_this )
     free( p_sys->psz_name );
     vlc_cancel( p_sys->thread );
     vlc_join( p_sys->thread, NULL );
+
+    if ( p_sys->pp_items != NULL )
+    {
+        for( int i_i = 0; i_i < p_sys->i_count; i_i++ )
+            if( p_sys->pp_items[i_i] != NULL )
+                input_item_Release( p_sys->pp_items[i_i] );
+        free( p_sys->pp_items );
+    }
+
     free( p_sys );
 }
 
-- 
GitLab