mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 17:40:40 -05:00
3bbfaa03b3
The cache had the size 9, which was "big enough" in the past, but when more ways pipelines could be constructed, the size was not enough. The need to increase the cache size was hard to spot though, since adding pipeline flag didn't give any hints about the cache being directly tied to these flag values. So, when enough flag bits were set when attempting to retrieve and put a pipeline in the cache, it'd instead overwrite some arbitrary stack memory, which would sooner or later result in a memory corruption induced crash. Valgrind could not detect this particular memory corruption, as it messed up stack memory, not e.g. freed heap memory, so it instead got confused and thought plain stack values were unreadable. Fix these two issues by making the cache size the combination of all pipeline flags + 1, so that we can safely put any flag combination in the cache. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1747> |
||
---|---|---|
.. | ||
backends | ||
compositor | ||
core | ||
meta | ||
tests | ||
ui | ||
wayland | ||
x11 | ||
libmutter.pc.in | ||
meson.build | ||
meta-private-enum-types.c.in | ||
meta-private-enum-types.h.in | ||
org.freedesktop.login1.xml | ||
org.gnome.Mutter.DisplayConfig.xml | ||
org.gnome.Mutter.IdleMonitor.xml | ||
org.gnome.Mutter.RemoteDesktop.xml | ||
org.gnome.Mutter.ScreenCast.xml |