Bug 55120 - application/x-zerosize isn't supported when not using cache.
Summary: application/x-zerosize isn't supported when not using cache.
Status: NEW
Alias: None
Product: xdgmime
Classification: Unclassified
Component: xdgmime (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Jonathan Blandford
QA Contact:
Depends on:
Reported: 2012-09-19 20:07 UTC by Norm Pierce
Modified: 2012-09-19 20:07 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Note You need to log in before you can comment on or make changes to this bug.
Description Norm Pierce 2012-09-19 20:07:39 UTC
Last September support was implemented for the application/x-zerosize MIME type.  This works fine when there is support for loading the mime.cache file into shared memory (and the file exists), but not otherwise.

To reproduce, create an empty file that doesn't match any glob.  For instance:

touch /tmp/test_empty

Then hide all of your mime.cache files ($HOME/.local/share/mime/mime.cache, /usr/share/mime/mime.cache, /usr/local/share/mime/mime.cache) and run test-mime on the empty file.

Expected results:
File "/tmp/test_empty" has a mime-type of application/x-zerosize

Actual results:
File "/tmp/test_empty" has a mime-type of text/plain

Here is the commit from last September:

"xdg/xdgmime: Implement text vs binary fallback; support for application/x-zerosize"

Looking at the commit diff for xdgmimecache.c, you can see where

+  if (statbuf->st_size == 0)
+    return XDG_MIME_TYPE_EMPTY;

has been added just before the existing

   if (!S_ISREG (statbuf->st_mode))

in _xdg_mime_cache_get_mime_type_for_file().

To fix this bug, the same code also needs to be added to the general version of that function, xdg_mime_get_mime_type_for_file(), in xdgmime.c.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.