/**
* look for XML formats (XHTML and SVG)
*/
+ Wikimedia\suppressWarnings();
$xml = new XmlTypeCheck( $file );
+ Wikimedia\restoreWarnings();
if ( $xml->wellFormed ) {
$xmlTypes = $this->xmlTypes;
return $xmlTypes[$xml->getRootElement()] ?? 'application/xml';
if ( $eocdrPos !== false ) {
$this->logger->info( __METHOD__ . ": ZIP signature present in $file\n" );
// Check if it really is a ZIP file, make sure the EOCDR is at the end (T40432)
- $commentLength = unpack( "n", $tail, $eocdrPos + 20 )[0];
+ $commentLength = unpack( "n", substr( $tail, $eocdrPos + 20 ) )[0];
if ( $eocdrPos + 22 + $commentLength !== strlen( $tail ) ) {
$this->logger->info( __METHOD__ . ": ZIP EOCDR not at end. Not a ZIP file." );
} else {
$callback = $this->guessCallback;
if ( $callback ) {
$callback( $this, $head, $tail, $file, $mime /* by reference */ );
- };
+ }
return $mime;
}
* distinguish them from MIME types.
*
* This function relies on the mapping defined by $this->mMediaTypes
- * @access private
+ * @private
* @param string $extMime
* @return int|string
*/