Ticket #1906 (closed Bug: fixed)

Opened 17 months ago

Last modified 17 months ago

PHP connector in filemanager should have better error checking

Reported by: Kyle Owned by: wwalc
Priority: Normal Milestone: FCKeditor 2.6
Component: Server : PHP Version: FCKeditor 2.5
Keywords: Confirmed Review+ Cc:

Description (last modified by w.olchawa) (diff)

The PHP connector DetectHTML function does no error checking to make sure that the file was opened or read correctly. This causes a cascade of errors on systems with the PHP open_basedir set to disallow opening of files in the temporary file-upload directory. See the forums post http://www.fckeditor.net/forums/viewtopic.php?f=6&t=8619.

In the file 'editor/filemanager/connectors/php/util.php' starting on line 87 is the DetectHTML function.

Original:

function DetectHtml( $filePath )
{
	$fp = fopen( $filePath, 'rb' ) ;
	$chunk = fread( $fp, 1024 ) ;
	fclose( $fp ) ;

With improved error checking, it should be something like this...

function DetectHtml( $filePath )
{
	$fp = fopen( $filePath, 'rb' ) ;
        if ( $fp !== false )
        {
         	$chunk = fread( $fp, 1024 ) ;
             if ( $chunk === false )
             {
                     $chunk = '';
             }
	       fclose( $fp ) ;
        }
        else
        {
             $chunk = '';
        }

I'm not sure whether it would be better to return TRUE or FALSE in the case of being unable to open and/or read the file. I leave it to the security experts to debate that.

Attachments

1906.patch (2.3 KB) - added by wwalc 17 months ago.

Change History

Changed 17 months ago by w.olchawa

  • keywords HasPatch added
  • version set to SVN
  • description modified (diff)

Changed 17 months ago by wwalc

  • owner set to wwalc
  • status changed from new to assigned
  • version changed from SVN to FCKeditor 2.5
  • milestone set to FCKeditor 2.6

Thanks Kyle for posting this here. I'm targeting it to 2.6 because it should be fixed as soon as possible.

If DetectHtml() fail to open the uploaded file, it will be checked once again after moving it to the final directory. If the file is invalid, FCKeditor will make an attempt do delete it.

Changed 17 months ago by wwalc

Changed 17 months ago by wwalc

  • keywords Confirmed Review? added; HasPatch removed

Changed 17 months ago by fredck

  • keywords Review+ added; Review? removed

I haven't tested it throughly, but the implementation seems ok.

I would just change line 240: "if" => "else if".

Then, if you have tested it well Wiktor, go ahead committing it. Please include a changelog entry for it.

Changed 17 months ago by wwalc

Fixed with [1615].

Changed 17 months ago by wwalc

  • status changed from assigned to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.