dieout when file is a boolean
authorAntoine Musso <hashar@users.mediawiki.org>
Mon, 7 Nov 2011 14:46:49 +0000 (14:46 +0000)
committerAntoine Musso <hashar@users.mediawiki.org>
Mon, 7 Nov 2011 14:46:49 +0000 (14:46 +0000)
On file operation errors, the file variable can be assigned boolean false
which is not a valid handle. Those backtrace can help users debug an issue
when generating a filemap.

maintenance/generateSitemap.php

index ab129f5..bed23b7 100644 (file)
@@ -347,13 +347,20 @@ class GenerateSitemap extends Maintenance {
         * @return Resource
         */
        function open( $file, $flags ) {
-               return $this->compress ? gzopen( $file, $flags ) : fopen( $file, $flags );
+               $ressource = $this->compress ? gzopen( $file, $flags ) : fopen( $file, $flags );
+               if( $ressource === false ) {
+                       wfDebugDieBacktrace( __METHOD__ . " error opening file $file with flags $flags. Check permissions?" );
+               }
+               return $ressource;
        }
 
        /**
         * gzwrite() / fwrite() wrapper
         */
        function write( &$handle, $str ) {
+               if( $handle === true || $handle === false ) {
+                       wfDebugDieBacktrace( __METHOD__ . " was passed a boolean as a file handle.\n" );
+               }
                if ( $this->compress )
                        gzwrite( $handle, $str );
                else