| 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 * |