[vlc-commits] playlist/art: fix potentiall null-pointer dereference

Filip Roséen git at videolan.org
Mon Sep 5 18:48:03 CEST 2016


vlc | branch: master | Filip Roséen <filip at atch.se> | Sat Sep  3 14:25:24 2016 +0200| [f7099ec77a7762ae39a252ecadecce56e396fe1d] | committer: Thomas Guillem

playlist/art: fix potentiall null-pointer dereference

filename_sanitize is not callable with a null-pointer, as such we
would potentially dereference such if strdup fails.

Signed-off-by: Thomas Guillem <thomas at gllm.fr>

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

 src/playlist/art.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/playlist/art.c b/src/playlist/art.c
index 18a3764..53133e5 100644
--- a/src/playlist/art.c
+++ b/src/playlist/art.c
@@ -139,17 +139,19 @@ end:
 static char *ArtCacheName( input_item_t *p_item, const char *psz_type )
 {
     char *psz_path = ArtCachePath( p_item );
-    if( !psz_path )
-        return NULL;
+    char *psz_ext = strdup( psz_type ? psz_type : "" );
+    char *psz_filename = NULL;
 
-    ArtCacheCreateDir( psz_path );
+    if( unlikely( !psz_path || !psz_ext ) )
+        goto end;
 
-    char *psz_ext = strdup( psz_type ? psz_type : "" );
+    ArtCacheCreateDir( psz_path );
     filename_sanitize( psz_ext );
-    char *psz_filename;
+
     if( asprintf( &psz_filename, "%s" DIR_SEP "art%s", psz_path, psz_ext ) < 0 )
         psz_filename = NULL;
 
+end:
     free( psz_ext );
     free( psz_path );
 



More information about the vlc-commits mailing list