]> git.sesse.net Git - vlc/blobdiff - src/playlist/art.c
Art: Do not crash if album is not null but empty
[vlc] / src / playlist / art.c
index bc08ef0c4edfb031a5e0f6b2f5ab6bd0c360773d..97280e7c79b67863bb52d41736cff87dc5568fb7 100644 (file)
@@ -92,7 +92,7 @@ static char* ArtCacheGetDirPath( const char *psz_arturl, const char *psz_artist,
            downloaded anyway). */
         struct md5_s md5;
         InitMD5( &md5 );
-        AddMD5( &md5, psz_arturl, sizeof( psz_arturl ) );
+        AddMD5( &md5, psz_arturl, strlen( psz_arturl ) );
         EndMD5( &md5 );
         char * psz_arturl_sanitized = psz_md5_hash( &md5 );
         if( asprintf( &psz_dir, "%s" DIR_SEP "art" DIR_SEP "arturl" DIR_SEP
@@ -122,7 +122,7 @@ static char *ArtCachePath( input_item_t *p_item )
     psz_album = vlc_meta_Get( p_item->p_meta, vlc_meta_Album );
     psz_arturl = vlc_meta_Get( p_item->p_meta, vlc_meta_ArtworkURL );
 
-    if( (!psz_artist || !psz_album ) && !psz_arturl )
+    if( (EMPTY_STR(psz_artist) || EMPTY_STR(psz_album) ) && !psz_arturl )
         goto end;
 
     psz_path = ArtCacheGetDirPath( psz_arturl, psz_artist, psz_album );
@@ -178,7 +178,7 @@ int playlist_FindArtInCache( input_item_t *p_item )
             if( asprintf( &psz_file, "%s" DIR_SEP "%s",
                           psz_path, psz_filename ) != -1 )
             {
-                char *psz_uri = make_URI( psz_file );
+                char *psz_uri = make_URI( psz_file, "file" );
                 if( psz_uri )
                 {
                     input_item_SetArtURL( p_item, psz_uri );
@@ -208,7 +208,7 @@ int playlist_SaveArt( playlist_t *p_playlist, input_item_t *p_item,
     if( !psz_filename )
         return VLC_EGENERIC;
 
-    char *psz_uri = make_URI( psz_filename );
+    char *psz_uri = make_URI( psz_filename, "file" );
     if( !psz_uri )
     {
         free( psz_filename );