From 20b82357aa8a69a2295aee0b1d547b704824d32e Mon Sep 17 00:00:00 2001 From: Romain Vimont <rom1v@videolabs.io> Date: Mon, 22 Nov 2021 15:41:32 +0100 Subject: [PATCH] mtp: fix device name LIBMTP_Get_Friendlyname() may return an empty string. Since it is not NULL, this name was used as the device name. Instead, in that case, fallback to the model name. --- modules/services_discovery/mtp.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/services_discovery/mtp.c b/modules/services_discovery/mtp.c index 31e54f5049a6..90d2bdfd8821 100644 --- a/modules/services_discovery/mtp.c +++ b/modules/services_discovery/mtp.c @@ -174,6 +174,19 @@ static void *Run( void *data ) return NULL; } +static char *GetDeviceName( LIBMTP_mtpdevice_t *p_device ) +{ + char *name = LIBMTP_Get_Friendlyname( p_device ); + if ( !EMPTY_STR( name ) ) + return name; + + name = LIBMTP_Get_Modelname( p_device ); + if ( !EMPTY_STR( name ) ) + return name; + + return strdup( "MTP Device" ); +} + /***************************************************************************** * Everything else *****************************************************************************/ @@ -187,10 +200,9 @@ static int AddDevice( services_discovery_t *p_sd, if( ( p_device = LIBMTP_Open_Raw_Device( p_raw_device ) ) != NULL ) { - if( !( psz_name = LIBMTP_Get_Friendlyname( p_device ) ) ) - if( !( psz_name = LIBMTP_Get_Modelname( p_device ) ) ) - if( !( psz_name = strdup( N_( "MTP Device" ) ) ) ) - return VLC_ENOMEM; + psz_name = GetDeviceName( p_device ); + if ( !psz_name ) + return VLC_ENOMEM; msg_Info( p_sd, "Found device: %s", psz_name ); p_sys->i_bus = p_raw_device->bus_location; p_sys->i_dev = p_raw_device->devnum; -- GitLab