| diff --git a/base/third_party/xdg_mime/xdgmime.c b/base/third_party/xdg_mime/xdgmime.c |
| index c7b16bb..6dc58c2 100644 |
| --- a/base/third_party/xdg_mime/xdgmime.c |
| +++ b/base/third_party/xdg_mime/xdgmime.c |
| @@ -558,13 +558,13 @@ xdg_mime_get_mime_type_for_file (const char *file_name, |
| mime_type = _xdg_mime_magic_lookup_data (global_magic, data, bytes_read, NULL, |
| mime_types, n); |
| |
| - free (data); |
| fclose (file); |
| |
| - if (mime_type) |
| - return mime_type; |
| + if (!mime_type) |
| + mime_type = _xdg_binary_or_text_fallback(data, bytes_read); |
| |
| - return _xdg_binary_or_text_fallback(data, bytes_read); |
| + free (data); |
| + return mime_type; |
| } |
| |
| const char * |