glib/gio/xdgmime
Alex Henrie d9c50cac5d xdgmime: Handle buggy type definitions with circular inheritance
This fixes a stack overflow reported by a user who had both the
definition of text/javascript from shared-mime-info 2.3 and the
definition of text/javascript from shared-mime-info 2.4 installed at the
same time. In 2.3, text/javascript is a subtype of
application/ecmascript, but in 2.4 application/ecmascript is a subtype
of text/javascript. Having both at the same time resulted in circular
inheritance.

The new logic keeps a list of all parents that have already been
checked, which is more comprehensive than the old workaround that was
implemented in commit 38869ece2 ("xdgmime: Prevent infinite loops from
badly-formed MIME registrations").

https://bugs.archlinux.org/task/80279
2023-11-20 09:46:51 -07:00
..
.gitignore gio/ docs/reference/gio Merged gio-standalone into glib. 2007-11-26 16:13:05 +00:00
meson.build Fix symbol visibility macros on Windows 2022-10-13 20:53:56 -04:00
xdgmime.c xdgmime: Handle buggy type definitions with circular inheritance 2023-11-20 09:46:51 -07:00
xdgmime.h xdgmime: Handle buggy type definitions with circular inheritance 2023-11-20 09:46:51 -07:00
xdgmimealias.c Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimealias.h Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimecache.c xdgmime: Handle buggy type definitions with circular inheritance 2023-11-20 09:46:51 -07:00
xdgmimecache.h xdgmime: Handle buggy type definitions with circular inheritance 2023-11-20 09:46:51 -07:00
xdgmimeglob.c Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimeglob.h Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimeicon.c Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimeicon.h Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimeint.c gio/xdgmime/: LGPLv2+ -> LGPLv2.1+ 2021-09-23 19:23:33 +02:00
xdgmimeint.h gio/xdgmime/: LGPLv2+ -> LGPLv2.1+ 2021-09-23 19:23:33 +02:00
xdgmimemagic.c xdgmime: Fix unused-variable warning 2022-01-25 20:18:41 +01:00
xdgmimemagic.h gio/xdgmime/: LGPLv2+ -> LGPLv2.1+ 2021-09-23 19:23:33 +02:00
xdgmimeparent.c Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00
xdgmimeparent.h Revert "Don't compile some unused functions in gio/xdgmime/" 2021-11-01 12:06:26 +00:00