hyprwm / hyprcursor

The hyprland cursor format, library and utilities.
https://standards.hyprland.org/hyprcursor/
BSD 3-Clause "New" or "Revised" License
348 stars 14 forks source link

hyprcursor_test2 and hyprcursor_test_c tests segfault in Alpine Linux #64

Open earboxer opened 2 hours ago

earboxer commented 2 hours ago

Haven't quite figured this out for a while (getting these tests working is my blocking issue for moving Hyprland to community from testing), just thought I'd put this here because someone else might have some input.

(related to free-ing the raw shape data?)

hyprcursor_test2

[hc] Skipping cairo load for a svg surface

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f8ccd8 in strlen (s=0x656c64617267 <error: Cannot access memory at address 0x656c64617267>) at src/string/strlen.c:16
warning: 16 src/string/strlen.c: No such file or directory
(gdb) bt
#0  0x00007ffff7f8ccd8 in strlen (s=0x656c64617267 <error: Cannot access memory at address 0x656c64617267>) at src/string/strlen.c:16
#1  0x0000555555555837 in Hyprcursor::CHyprcursorManager::getRawShapeData(char const*) ()
#2  0x0000555555555224 in main ()
Full details of backtrace running gdb
zach@mbp ~/g/H/build (main) [SIGSEGV]> gdb ./hyprcursor_test2
GNU gdb (GDB) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-alpine-linux-musl".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
    .

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./hyprcursor_test2...
(gdb) run
Starting program: /home/zach/test/gitstuffs/Hyprcursor/build/hyprcursor_test2
[hc] CHyprcursorManager: attempting to find theme from env
[hc] themeNameFromEnv: env unset
[hc] CHyprcursorManager: attempting to find any theme
[hc] getFirstTheme: found /home/zach/.local/share/icons/rose-pine-hyprcursor
[hc] getFullPathForThemeName: found /home/zach/.local/share/icons/rose-pine-hyprcursor
[hc] Found theme rose-pine-hyprcursor at /home/zach/test/gitstuffs/rose-pine-hyprcursor

[hc] Loading top_left_corner.svg for shape top_left_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading right_ptr.svg for shape right_ptr
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading pencil.svg for shape pencil
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading color-picker.svg for shape color-picker
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading plus.svg for shape plus
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading left_side.svg for shape left_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading hand2.svg for shape hand2
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading pirate.svg for shape pirate
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_v_double_arrow.svg for shape sb_v_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading crossed_circle.svg for shape crossed_circle
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading zoom-out.svg for shape zoom-out
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading col-resize.svg for shape col-resize
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading center_ptr.svg for shape center_ptr
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading top_side.svg for shape top_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_h_double_arrow.svg for shape sb_h_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading top_right_corner.svg for shape top_right_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bd_double_arrow.svg for shape bd_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading question_arrow.svg for shape question_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading row-resize.svg for shape row-resize
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bottom_left_corner.svg for shape bottom_left_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading dotbox.svg for shape dotbox
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading link.svg for shape link
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading fd_double_arrow.svg for shape fd_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading all-scroll.svg for shape all-scroll
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading X_cursor.svg for shape X_cursor
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading left_ptr.svg for shape left_ptr
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading wayland-cursor.svg for shape wayland-cursor
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading hand1.svg for shape hand1
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_right_arrow.svg for shape sb_right_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading context-menu.svg for shape context-menu
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading cross.svg for shape cross
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading move.svg for shape move
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bottom_right_corner.svg for shape bottom_right_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading zoom-in.svg for shape zoom-in
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_up_arrow.svg for shape sb_up_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading right_side.svg for shape right_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading vertical-text.svg for shape vertical-text
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_down_arrow.svg for shape sb_down_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading xterm.svg for shape xterm
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_left_arrow.svg for shape sb_left_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading copy.svg for shape copy
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading dnd_no_drop.svg for shape dnd_no_drop
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bottom_side.svg for shape bottom_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f8ccd8 in strlen (s=0x656c64617267 ) at src/string/strlen.c:16
warning: 16 src/string/strlen.c: No such file or directory
(gdb) bt
#0  0x00007ffff7f8ccd8 in strlen (s=0x656c64617267 ) at src/string/strlen.c:16
#1  0x0000555555555837 in Hyprcursor::CHyprcursorManager::getRawShapeData(char const*) ()
#2  0x0000555555555224 in main ()
(gdb) bt full
#0  0x00007ffff7f8ccd8 in strlen (s=0x656c64617267 ) at src/string/strlen.c:16
        a = 0x656c64617267 
        w = 
#1  0x0000555555555837 in Hyprcursor::CHyprcursorManager::getRawShapeData(char const*) ()
#2  0x0000555555555224 in main ()

hyprcursor_test_c

left_ptr images: 1
left_ptr image size: 2535

Program received signal SIGSEGV, Segmentation fault.
get_meta (p=p@entry=0x656c64617267 <error: Cannot access memory at address 0x656c64617267>) at src/malloc/mallocng/meta.h:131
warning: 131    src/malloc/mallocng/meta.h: No such file or directory
(gdb) bt
#0  get_meta (p=p@entry=0x656c64617267 <error: Cannot access memory at address 0x656c64617267>) at src/malloc/mallocng/meta.h:131
#1  0x00007ffff7f9eb9f in __libc_free (p=0x656c64617267) at src/malloc/mallocng/free.c:105
#2  0x00007ffff7f27165 in hyprcursor_raw_shape_data_free () at /home/zach/gs/Hyprcursor/build/libhyprcursor.so.0
#3  0x00005555555551ac in main ()
Full details
zach@mbp ~/g/H/build (main)> gdb ./hyprcursor_test_c
GNU gdb (GDB) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-alpine-linux-musl".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
    .

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./hyprcursor_test_c...
(gdb) run
Starting program: /home/zach/test/gitstuffs/Hyprcursor/build/hyprcursor_test_c
[hc] CHyprcursorManager: attempting to find theme from env
[hc] themeNameFromEnv: env unset
[hc] CHyprcursorManager: attempting to find any theme
[hc] getFirstTheme: found /home/zach/.local/share/icons/rose-pine-hyprcursor
[hc] getFullPathForThemeName: found /home/zach/.local/share/icons/rose-pine-hyprcursor
[hc] Found theme rose-pine-hyprcursor at /home/zach/test/gitstuffs/rose-pine-hyprcursor

[hc] Loading top_left_corner.svg for shape top_left_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading right_ptr.svg for shape right_ptr
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading pencil.svg for shape pencil
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading color-picker.svg for shape color-picker
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading plus.svg for shape plus
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading left_side.svg for shape left_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading hand2.svg for shape hand2
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading pirate.svg for shape pirate
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_v_double_arrow.svg for shape sb_v_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading crossed_circle.svg for shape crossed_circle
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading zoom-out.svg for shape zoom-out
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading col-resize.svg for shape col-resize
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading center_ptr.svg for shape center_ptr
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading top_side.svg for shape top_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_h_double_arrow.svg for shape sb_h_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading top_right_corner.svg for shape top_right_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bd_double_arrow.svg for shape bd_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading question_arrow.svg for shape question_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading row-resize.svg for shape row-resize
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bottom_left_corner.svg for shape bottom_left_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading dotbox.svg for shape dotbox
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading link.svg for shape link
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading fd_double_arrow.svg for shape fd_double_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading all-scroll.svg for shape all-scroll
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading X_cursor.svg for shape X_cursor
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading left_ptr.svg for shape left_ptr
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading wayland-cursor.svg for shape wayland-cursor
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading hand1.svg for shape hand1
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_right_arrow.svg for shape sb_right_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading context-menu.svg for shape context-menu
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading cross.svg for shape cross
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading move.svg for shape move
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bottom_right_corner.svg for shape bottom_right_corner
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading zoom-in.svg for shape zoom-in
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_up_arrow.svg for shape sb_up_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading right_side.svg for shape right_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading vertical-text.svg for shape vertical-text
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_down_arrow.svg for shape sb_down_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading xterm.svg for shape xterm
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading sb_left_arrow.svg for shape sb_left_arrow
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading copy.svg for shape copy
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading dnd_no_drop.svg for shape dnd_no_drop
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
[hc] Loading bottom_side.svg for shape bottom_side
[hc] Cairo: set up surface read
[hc] Skipping cairo load for a svg surface
left_ptr images: 1
left_ptr image size: 2535

Program received signal SIGSEGV, Segmentation fault.
get_meta (p=p@entry=0x656c64617267 ) at src/malloc/mallocng/meta.h:131
warning: 131    src/malloc/mallocng/meta.h: No such file or directory
(gdb) bt
#0  get_meta (p=p@entry=0x656c64617267 ) at src/malloc/mallocng/meta.h:131
#1  0x00007ffff7f9eb9f in __libc_free (p=0x656c64617267) at src/malloc/mallocng/free.c:105
#2  0x00007ffff7f27165 in hyprcursor_raw_shape_data_free () at /home/zach/gs/Hyprcursor/build/libhyprcursor.so.0
#3  0x00005555555551ac in main ()

(It seems like these tests work under arch, so this may be musl libc related, possible we're triggering undefined behavior of free?)

vaxerski commented 2 hours ago

dam

vaxerski commented 2 hours ago

should fix this

vaxerski commented 2 hours ago

if it's fixed I'll release a new update