aboutsummaryrefslogtreecommitdiff
path: root/xcursor
AgeCommit message (Collapse)Author
2024-02-15Define _POSIX_C_SOURCE globallySimon Ser
Stop trying to maintain a per-file _POSIX_C_SOURCE. Instead, require POSIX.1-2008 globally. A lot of core source files depend on that already. Some care must be taken on a few select files where we need a bit more than POSIX. Some files need XSI extensions (_XOPEN_SOURCE) and some files need BSD extensions (_DEFAULT_SOURCE). In both cases, these feature test macros imply _POSIX_C_SOURCE. Make sure to not define both these macros and _POSIX_C_SOURCE explicitly to avoid POSIX requirement conflicts (e.g. _POSIX_C_SOURCE says POSIX.1-2001 but _XOPEN_SOURCE says POSIX.1-2008). Additionally, there is one special case in render/vulkan/vulkan.c. That file needs major()/minor(), and these are system-specific. On FreeBSD, _POSIX_C_SOURCE hides system-specific symbols so we need to make sure it's not defined for this file. On Linux, we can explicitly include <sys/sysmacros.h> and ensure that apart from symbols defined there the file only uses POSIX toys.
2024-02-12Add more POSIX compliance macros to fix uClibc supportPaul Cercueil
- Add POSIX 1993.09 compliance macro in source files that use "struct timespec"; - Add POSIX 2001.12 compliance macro in source files that use "struct sigaction" and the SA_SIGINFO macro, or the fchmod() function; - Add POSIX 2008.09 compliance macro in source files that use the getline() function. These compliance macros are enough for wlroots to compile with the git-master version of uClibc-ng. Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2023-12-12xcursor: fix duplicate cursor check check in load_callback()Simon Ser
wlr_xcursor_theme_get_cursor() now does some fallback logic. We don't want that for checking whether a cursor has already been loaded. Fixes: dbedcdb418f4 ("xcursor: add fallbacks for legacy names") Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3783
2023-11-19xcursor: don't store NULL xcursorsKirill Primak
2023-11-19xcursor: fix NULL deref on malloc() failKirill Primak
2023-11-01xcursor: add fallbacks for legacy namesSimon Ser
Some XCursor themes still use the legacy names instead of the newer cursor naming spec [1]. Fall back to the legacy name if the standard one could not be found. [1]: https://www.freedesktop.org/wiki/Specifications/cursor-spec/ Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3746
2023-10-03treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practicalAlexander Orzechowski
2023-04-25xcursor: Resolve warning in xcursor_build_theme_dirEdgars Cīrulis
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-04-18xcursor: sync with libwaylandSimon Ser
xcursor.c was copied over from libwayland-cursor. A lot of cosmetic imporvements have been merged upstream. Copy-paste the new version.
2023-04-11xcursor: adjust style, use calloc()Simon Ser
Adjust the code style for wlroots, and use calloc() for structs.
2022-12-06xcursor: use internal_configSimon Ser
Removes a project argument, improves escaping.
2022-09-14meson: replace join_paths() with / operatorilliliti
2022-05-02xcursor: check that XDG base directory path is absoluteAntonin Décimo
The spec reads: > All paths set in these environment variables must be absolute. If an > implementation encounters a relative path in any of these variables it should > consider the path invalid and ignore it. and > If $XDG_DATA_HOME is either not set or empty, a default equal to > $HOME/.local/share should be used. Testing that the path is absolute also entails that is is non-empty.
2022-03-08xcursor: support XDG Base Directory SpecificationMoon Sungjoon
This patch adds ~/.local/share/icons to the search path, so user-specific themes can be loaded through the API provided by libwayland-cursor. Use this PR as reference: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/112
2022-01-31xcursor: garbage collect XcursorLibraryLoadImagesVlad Zahorodnii
XcursorLibraryLoadImages is unused, let's drop it. Same as [1]. [1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/206 Co-authored-by: Simon Ser <contact@emersion.fr>
2021-05-02xcursor: fix CVE-2013-2003Tobias Stoeckmann
The libXcursor fix for CVE-2013-2003 has never been imported into wlroots, leaving it vulnerable to it. Changing the argument type to an unsigned type is an effective merge of Ilja Van Sprundel's commit in libXcursor. Proof of Concept (compile with address sanitizer): $ mkdir -p ~/.local/share/icons/poc/cursors $ base64 -d <<< WGN1chAAAAAAAAAA/////w== > \ ~/.local/share/icons/poc/cursors/poc $ echo "seat seat0 xcursor_theme poc 10" > ~/poc-config $ sway -c ~/poc-config
2021-04-26xcursor: quiet debug logSimon Ser
Stop listing all available cursors each time a cursor theme is loaded. They can be obtained from the CLI instead, e.g. ls /usr/share/icons/Adwaita/cursors
2021-04-13xcursor: use memcpy() to append string of known sizeYuya Nishihara
Since len <= strlen(elt) is known, we don't need a str*() function. Let's simply do memcpy() to suppress linter false positive. Fixes #2777.
2021-04-13Revert "xcursor: use strncat instead of strncpy"Yuya Nishihara
This reverts commit 7dffe9339bf8a92a556098d86712c4c38ac95226, which introduced another linter error with -O3: error: ‘strncat’ specified bound 7 equals source length [-Werror=stringop-overflow=] This makes sense because strncat(dest, "cursors", strlen("cursors")) is moot in security point of view. The next commit will replace strncpy() with memcpy(), so let's restore the original implementation.
2021-03-08xcursor: use strncat instead of strncpyLukas Märdian
strncat appends '\0' automatically and avoids the stringop-truncation warning/error
2021-03-08Fix false positive -Wstringop-truncationLukas Märdian
Fix false positive stringop-truncation warning/error with GCC 10 on s390x by indicating GCC to explicitly ignore this case, as it is clearly a false positive (NUL is set in the following line). This allow the compilation to succeed with -Werror on. Fixes: https://github.com/swaywm/wlroots/issues/2018
2021-02-05xcursor: make cursor data and metadata constManuel Stoeckl
2020-09-01Fix undefined behaviorValentin
Without the casts the bytes accesses get converted to int. but int is not guaranteed to be 4 bytes large. Even when it is 4 bytes large `bytes[3] << 24` does not fit because int is signed.
2020-07-27Fix incorrect format parametersAntonin Décimo
2020-06-26xcursor: add xorg-x11 and cursors path to XCURSORPATHKirill Chibisov
This should match default XCURSORPATH, which is used by libwayland-cursor and other xcursor loading libraries more closely.
2020-03-04xcursor: also look for cursor themes under ${datadir}/icons by defaultJan Beich
Same as https://gitlab.freedesktop.org/wayland/wayland/commit/dd8891be36ec
2019-12-23meson: Various improvementsScott Anderson
Bumps minimum version to 0.51.0 - Remove all intermediate static libraries. They serve no purpose and are just add a bunch of boilerplate for managing dependencies and options. It's now managed as a list of files which are compiled into libwlroots directly. - Use install_subdir instead of installing headers individually. I've changed my mind since I did that. Listing them out is annoying as hell, and it's easy to forget to do it. - Add not_found_message for all of our optional dependencies that have a meson option. It gives some hints about what option to pass and what the optional dependency is for. - Move all backend subdirectories into their own meson.build. This keeps some of the backend-specific build logic (especially rdp and session) more neatly separated off. - Don't overlink example clients with code they're not using. This was done by merging the protocol dictionaries and setting some variables containing the code and client header file. Example clients now explicitly mention what extension protocols they want to link to. - Split compositor example logic from client example logic. - Minor formatting changes
2019-08-12xcursor: avoid leak and loss of all cursors if cursors realloc failsAntonin Décimo
2018-11-27xcursor: Support XDG user data dir locationCosimo Cecchi
Nowadays ~/.icons is not used anymore as the preferred location for custom user icon themes; XDG_DATA_HOME/icons (aka ~/.local/share/icons) is what toolkits like GTK prefer. Prepend that location to the default xcursor path, so that cursor themes installed there can be used by apps and toolkits that use libXcursor. Port of https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/src?id=2263c196cb0dcb8547b378df7b35f83b8b99c01e
2018-11-27xcursor: fix crash when encountering cursor themes with circular dependenciesPhilipp Ludwig
Port of https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/src?id=f64a8cc1a65dcad4294e2988b402a34175019663
2018-11-06xcursor: Fix heap overflows when parsing malicious filesTobias Stoeckmann
It is possible to trigger heap overflows due to an integer overflow while parsing images. The integer overflow occurs because the chosen limit 0x10000 for dimensions is too large for 32 bit systems, because each pixel takes 4 bytes. Properly chosen values allow an overflow which in turn will lead to less allocated memory than needed for subsequent reads. See also: https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/?id=4794b5dd34688158fb51a2943032569d3780c4b8 https://gitlab.freedesktop.org/wayland/wayland/commit/5d201df72f3d4f4cb8b8f75f980169b03507da38
2018-11-06Use _POSIX_C_SOURCE, use shm_openemersion
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-04-25Don't use the wlr_ prefix for static functionsemersion
2018-02-19Revert "ELF Visibility"Drew DeVault
2018-02-19Explicitly export EFL symbolsScott Anderson
2018-02-12Reformat all #include directivesemersion
2018-01-18output: add wlr_output::damage, fixes #572emersion
2017-12-08move get_resize_name to xcursorTony Crisci
2017-10-11Add FreeBSD compatibilityGreg V
2017-08-30Refactor meson build filesTony Crisci
Use tabs for indentation and break up function calls over 80 col.
2017-08-18rename wlr_cursor.c to wlr_xcursor.cTony Crisci
2017-08-18rename wlr_cursor to wlr_xcursorTony Crisci
This is for the implementation of another type that should be called wlr_cursor.
2017-08-14Fix style issuesnyorain
2017-08-13Fix #64Drew DeVault
2017-08-11Refactor meson and move xdg-shell into wlrootsDrew DeVault
2017-08-08Add logging in wlr_cursorDrew DeVault
2017-08-07Add xcursor sublibraryDrew DeVault