aboutsummaryrefslogtreecommitdiffstats
path: root/tests/data/example.xml
diff options
context:
space:
mode:
authorTobias Stoeckmann <tobias@stoeckmann.org>2021-05-14 13:06:15 +0200
committerSimon Ser <contact@emersion.fr>2021-06-02 13:46:33 +0000
commitabcf1048e23525865c2ff43ce90bbdaa80524246 (patch)
tree875debd79856094527361164481e7abfd2961655 /tests/data/example.xml
parentprotocol: drop reference to wl_drm (diff)
downloadwayland-abcf1048e23525865c2ff43ce90bbdaa80524246.tar
wayland-abcf1048e23525865c2ff43ce90bbdaa80524246.tar.gz
wayland-abcf1048e23525865c2ff43ce90bbdaa80524246.tar.bz2
wayland-abcf1048e23525865c2ff43ce90bbdaa80524246.tar.lz
wayland-abcf1048e23525865c2ff43ce90bbdaa80524246.tar.xz
wayland-abcf1048e23525865c2ff43ce90bbdaa80524246.tar.zst
wayland-abcf1048e23525865c2ff43ce90bbdaa80524246.zip
cursor: fix crash with weird input files
If a cursor file contains multiple images for the same size, this typically indicates an animation. The compositor weston uses wl_cursor_frame_and_duration to figure out at which time a specific image should be shown. The total delay is the sum of all image delays. But if all images have a delay of 0, the total delay is 0 as well. The code does not check for this special condition and triggers a floating point exception by eventually performing a modulo operation with 0. This, of course, could also happen if the sum of all image delays triggers an unsigned int overflow. But since a comment in the code already indicates that it does not try to "fix" handling of weird files, I would argue that it's "okay" if that happens. At least the program won't crash. Proof of Concept: install -D ~/.icons/poc/cursors base64 -d > ~/.icons/poc/cursors/left_ptr << EOF WGN1chAAAAAAAAEAAgAAAAIA/f8BAAAAKAAAAAIA/f8BAAAAKAAAACQAAAACAP3/AQAAAAEAAAAB AAAAAQAAAAEAAAABAAAAAAAAAAAAAAA= EOF cat > /tmp/weston.ini << EOF [shell] cursor-theme=poc EOF weston -c /tmp/weston.ini Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Diffstat (limited to 'tests/data/example.xml')
0 files changed, 0 insertions, 0 deletions