Skip to content

finfo returns wrong mime type for (.tar).xz files #11298

Closed

Description

@nilllzz

Description

Running a mime type detection on .xz archive files returns an incorrect mime type.

This code:

$path = "[Path to .xz file]";
$finfo = new \finfo(FILEINFO_MIME_TYPE);
$mimeData = $finfo->file($path);
echo $mimeData;

Resulted in this output:

"application/octet-stream"

But I expected this output instead:

"application/x-xz; charset=binary"

This is apparently an issue with libmagic version 5.40 and was fixed in 5.41 (ref https://bugs.astron.com/view.php?id=257).
The specific fix to the magic file can be found here: file/file@9b0459a

I suggest a similar fix to GH-8805 that was done in 34fa65a, since the issue seems very similar.

PHP Version

PHP 8.2.3

Operating System

No response

Activity

  1. iluuu1994 commented on May 23, 2023

    @iluuu1994
    Member

    @nilllzz Thank you for the detailed report!

    @weltling Hi! Is this process documented somewhere? I see ext/fileinfo/data_file.c is generated by ext/fileinfo/create_data_file.php, but I'm not sure how the patch files are related, and where/when to apply them. Also, my local magic.mgc file produces massive changes to data_file.c, some I'm guessing there's some canonical one to use?

  2. added a commit that references this issue on Jul 1, 2023
    97f0d97
  3. weltling commented on Jul 1, 2023

    @weltling
    Contributor

    @iluuu1994 no much docs on that and in many cases things have to be done manually. We carry magicdata.patch which has to be applied to libmagic before creating the magic db binary. That one is then used for embedding in the PHP sources.

    Thanks

  4. added a commit that references this issue on Feb 3, 2024
    86f79b2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions