diff --git a/modules/services_discovery/mtp.c b/modules/services_discovery/mtp.c index 90d2bdfd88216d34a934ec5935782d356aad9b38..c28f9d63b1517890a6cbd8b3362e49a6e095cf78 100644 --- a/modules/services_discovery/mtp.c +++ b/modules/services_discovery/mtp.c @@ -219,6 +219,12 @@ static int AddDevice( services_discovery_t *p_sd, sizeof( input_item_t * ) ) ) ) { free( psz_name ); + while ( p_track ) { + p_tmp = p_track; + p_track = p_track->next; + LIBMTP_destroy_track_t( p_tmp ); + } + LIBMTP_Release_Device( p_device ); return VLC_ENOMEM; } p_sys->i_count = 0;