Bug #75380 [Com]: finfo_file treats XML file as text/xml

From: Date: Mon, 17 Dec 2018 09:54:06 +0000
Subject: Bug #75380 [Com]: finfo_file treats XML file as text/xml
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-218478@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75380&edit=1 ID: 75380 Comment by: mwaghmare7 at gmail dot com Reported by: d dot naumenko dot a at gmail dot com Summary: finfo_file treats XML file as text/xml Status: No Feedback Type: Bug Package: Filesystem function related Operating System: 3v4l PHP Version: 7.2.0RC4 Block user comment: N Private report: N New Comment: Getting different REAL MIME type from function finfo_file. The issue may be the different Operating Systems or due to Different PHP versions. But, While debugging the issue, When I try to upload the XML on localhost I got the text/xml as a real MIME type and on live site it's application/xml. Below is the debugging steps: File: /wp-includes/functions.php line 2346 // Validate files that didn't get validated during previous checks. if ( $type && ! $real_mime && extension_loaded( 'fileinfo' ) ) { $finfo = finfo_open( FILEINFO_MIME_TYPE ); $real_mime = finfo_file( $finfo, $file ); finfo_close( $finfo ); // @DEBUGGING... echo '<pre>'; var_dump( FILEINFO_MIME_TYPE ) . '<br/>'; var_dump( $finfo ) . '<br/>'; var_dump( $file ) . '<br/>'; var_dump( $real_mime ) . '<br/>'; wp_die(); The output of the above code is below on LOCALHOST: PHP: Version 7.2.4 System: Windows NT M 6.3 build 9600 (Windows 8.1 Professional Edition) i586 int(16) resource(767) of type (Unknown) string(46) "C:\Users\Yum\AppData\Local\Temp/wxr-LccAYF.tmp" string(8) "text/xml" But, It is different on the LIVE site. PHP: Version 7.0.32-4+ubuntu16.04.1+deb.sury.org+1 System: Linux ip-172-31-25-204 4.4.0-134-generic #160-Ubuntu SMP Wed Aug 15 14:58:00 UTC 2018 x86_64 int(16) resource(747) of type (Unknown) string(19) "/tmp/wxr-YNkiH5.tmp" string(15) "application/xml" Previous Comments: ------------------------------------------------------------------------ [2017-11-05 04:23:00] php-bugs at lists dot php dot net No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Re-Opened". Thank you. ------------------------------------------------------------------------ [2017-10-26 16:55:19] ab@php.net @spam2, thanks, but that's not the factual feedback on the actual MIME type diff reported. Cheers. ------------------------------------------------------------------------ [2017-10-26 16:38:16] spam2 at rhsoft dot net because it's terrible when you have a difference between file in your terminal and PHP caused by the fork of libmagic and bundle it instead using system libraries this leads to some images reported as applications/octed-stream over now 5 years while a report at the Linux distribution fixed it within days for the cli utility using Zend memory manager and open-basedir don't justify the fork, the memory manager don't matter, open_basedir should be checked way earlier before calling library code at all and for stream wrappers temp files in the shim layer would be a solution ------------------------------------------------------------------------ [2017-10-26 16:29:39] ab@php.net Thanks for the report. Why is it supposed to be a bug? Seems the behavior is intentional https://github.com/file/file/commit/cee2b49cdb6c995c1a449aa399f80145e28c6a8a in the upstream data. Also wrt RFC 7303 the types are same. The data version depends on the file utility version and a particular distro. Thanks. ------------------------------------------------------------------------ [2017-10-15 08:50:12] d dot naumenko dot a at gmail dot com Description: ------------ Before PHP 7.2.0 alpha1, function finfo_ function called on XML input returned mime-type application/xml. Since PHP7.2 alpha1 it returns text/xml. When I put the same XML document as in test script bellow to the file and call linux program file on it, I see expected result: $> file --mime-type test.xml test.xml: application/xml Test script: --------------- https://3v4l.org/QDKAp Expected result: ---------------- application/xml Actual result: -------------- text/xml ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75380&edit=1

« previous php.bugs (#218478) next »