+2008-04-16 Matthias Clasen <mclasen@redhat.com>
+
+ Avoid possible memory corruption in xdgmime, fd.o bug 12512,
+ reported by Joe Shaw and Federico Mena Quintero.
+
+ * xdgmime/xdgmime.c(_xdg_mime_media_type_equal): Implement.
+ (xdg_mime_media_type_equal): Turn into a wrapper around the
+ _-prefixed version.
+
+ * xdgmime/xdgmimecache.c: Use the _-prefixed versions of comparison
+ functions throughout.
+
2008-04-16 Michael Meeks <michael.meeks@novell.com>
* gdesktopappinfo.c (g_desktop_app_info_new_from_filename):
}
int
-xdg_mime_media_type_equal (const char *mime_a,
- const char *mime_b)
+_xdg_mime_media_type_equal (const char *mime_a,
+ const char *mime_b)
{
char *sep;
- xdg_mime_init ();
-
sep = strchr (mime_a, '/');
if (sep && strncmp (mime_a, mime_b, sep - mime_a + 1) == 0)
return 0;
}
+int
+xdg_mime_media_type_equal (const char *mime_a,
+ const char *mime_b)
+{
+ xdg_mime_init ();
+
+ return _xdg_mime_media_type_equal (mime_a, mime_b);
+}
+
#if 1
static int
xdg_mime_is_super_type (const char *mime)
for (n = 0; n < n_mime_types; n++)
{
if (mime_types[n] &&
- xdg_mime_mime_type_equal (mime_types[n], non_match))
+ _xdg_mime_mime_type_equal (mime_types[n], non_match))
mime_types[n] = NULL;
}
}
#if 1
/* Handle supertypes */
if (is_super_type (ubase) &&
- xdg_mime_media_type_equal (umime, ubase))
+ _xdg_mime_media_type_equal (umime, ubase))
return 1;
#endif