Installer: Check if /extensions is readable and a directory
authorumherirrender <umherirrender_de.wp@web.de>
Fri, 22 Mar 2013 17:53:51 +0000 (18:53 +0100)
committerumherirrender <umherirrender_de.wp@web.de>
Fri, 22 Mar 2013 17:53:51 +0000 (18:53 +0100)
Also close the dirhandler and fix one return value

bug: 46447
Change-Id: I0abe540d66375e6833640bb234e62b6cc902beb0

includes/installer/Installer.php

index 7ff1ff5..8aee15c 100644 (file)
@@ -1320,13 +1320,16 @@ abstract class Installer {
         */
        public function findExtensions() {
                if( $this->getVar( 'IP' ) === null ) {
-                       return false;
+                       return array();
                }
 
-               $exts = array();
                $extDir = $this->getVar( 'IP' ) . '/extensions';
-               $dh = opendir( $extDir );
+               if ( !is_readable( $extDir ) || !is_dir( $extDir ) ) {
+                       return array();
+               }
 
+               $dh = opendir( $extDir );
+               $exts = array();
                while ( ( $file = readdir( $dh ) ) !== false ) {
                        if( !is_dir( "$extDir/$file" ) ) {
                                continue;
@@ -1335,6 +1338,7 @@ abstract class Installer {
                                $exts[] = $file;
                        }
                }
+               closedir( $dh );
                natcasesort( $exts );
 
                return $exts;