[vlc-commits] skins2: fix file descriptor leak and missing error check

Erwan Tulou git at videolan.org
Fri Jun 12 21:48:56 CEST 2015


vlc | branch: master | Erwan Tulou <erwan10 at videolan.org> | Thu Jun 11 20:09:10 2015 +0200| [01bf3662b1af1673cc5f6efbb355a698983a7651] | committer: Erwan Tulou

skins2: fix file descriptor leak and missing error check

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

 modules/gui/skins2/src/theme_loader.cpp |   14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/modules/gui/skins2/src/theme_loader.cpp b/modules/gui/skins2/src/theme_loader.cpp
index 5783cda..1fba110 100644
--- a/modules/gui/skins2/src/theme_loader.cpp
+++ b/modules/gui/skins2/src/theme_loader.cpp
@@ -115,6 +115,8 @@ bool ThemeLoader::extractTarGz( const string &tarFile, const string &rootDir )
     if( tar_open( &t, (char *)tarFile.c_str(), O_RDONLY ) == -1 )
 #endif
     {
+        msg_Dbg( getIntf(), "failed to open %s as a gzip tar file",
+                            tarFile.c_str() );
         return false;
     }
 
@@ -139,10 +141,18 @@ bool ThemeLoader::extractZip( const string &zipFile, const string &rootDir )
 
     // Try to open the ZIP file
     unzFile file = unzOpen( zipFile.c_str() );
+    if( file == 0 )
+    {
+        msg_Dbg( getIntf(), "failed to open %s as a zip file",
+                 zipFile.c_str() );
+        return false;
+    }
     unz_global_info info;
-
     if( unzGetGlobalInfo( file, &info ) != UNZ_OK )
     {
+        msg_Dbg( getIntf(), "failed to read zip info from %s",
+                 zipFile.c_str() );
+        unzClose( file );
         return false;
     }
     // Extract all the files in the archive
@@ -159,7 +169,7 @@ bool ThemeLoader::extractZip( const string &zipFile, const string &rootDir )
         if( i < info.number_entry - 1 )
         {
             // Go the next file in the archive
-            if( unzGoToNextFile( file ) !=UNZ_OK )
+            if( unzGoToNextFile( file ) != UNZ_OK )
             {
                 msg_Warn( getIntf(), "error while unzipping %s",
                           zipFile.c_str() );



More information about the vlc-commits mailing list