[Wayland-bugs] [Bug 54598] New: segmentation violation caused by undetected failure of XcursorLibraryLoadImages()

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Sep 6 07:59:04 PDT 2012


https://bugs.freedesktop.org/show_bug.cgi?id=54598

             Bug #: 54598
           Summary: segmentation violation caused by undetected failure of
                    XcursorLibraryLoadImages()
    Classification: Unclassified
           Product: Wayland
           Version: unspecified
          Platform: x86 (IA32)
        OS/Version: Linux (All)
            Status: NEW
          Severity: major
          Priority: medium
         Component: weston
        AssignedTo: wayland-bugs at lists.freedesktop.org
        ReportedBy: Knut_Petersen at t-online.de


weston --xserver segfaults during xserver startup when no xcursors are found:


#0  0xb5b35521 in xcb_cursor_images_load_cursor (wm=0x83b7030, images=0x0) at
window-manager.c:182
#1  0xb5b355d6 in xcb_cursor_library_load_cursor (wm=0x83b7030, file=0xb5b3ea94
"top_side") at window-manager.c:207
#2  0xb5b371ab in weston_wm_create_cursors (wm=0x83b7030) at
window-manager.c:988
#3  0xb5b381a3 in weston_wm_create (wxs=0x83b8bf0) at window-manager.c:1469
#4  0xb5b3a41a in bind_xserver (client=0x838a248, data=0x83b8bf0, version=1,
id=11) at launcher.c:165
#5  0xb74c4318 in display_bind (client=0x838a248, resource=0x83ad9b0, name=12,
interface=0x83ae71c "xserver", version=1, id=11) at wayland-server.c:923
#6  0xb74bb522 in ffi_call_SYSV () at ../../../libffi/src/x86/sysv.S:64
#7  0xb74bb2be in ffi_call (cif=0x83ae6a0, fn=0xb74c4272 <display_bind>,
rvalue=0xbffb8b8c, avalue=0x83ae6b8) at ../../../libffi/src/x86/ffi.c:324
#8  0xb74c8aa5 in wl_closure_invoke (closure=0x83ae648, target=0x83ad9b0,
func=0xb74c4272 <display_bind>, data=0x838a248) at connection.c:855
#9  0xb74c2fb1 in wl_client_connection_data (fd=25, mask=1, data=0x838a248) at
wayland-server.c:284
#10 0xb74c671d in wl_event_source_fd_dispatch (source=0x84908f8, ep=0xbffb8c40)
at event-loop.c:79
#11 0xb74c7065 in wl_event_loop_dispatch (loop=0x80654e0, timeout=-1) at
event-loop.c:410
#12 0xb74c4896 in wl_display_run (display=0x80654b0) at wayland-server.c:1103
#13 0x08056679 in main (argc=1, argv=0xbffb9044) at compositor.c:4131


This is caused by an undetected fail of XcursorLibraryLoadImages() in
xcb_cursor_images_load_cursor(). The returned null-pointer is assigned to
images, later it causes the segmentation violation in 
cb_cursor_images_load_cursor().

Immediate workaround: Make sure that a proper xcursor theme is installed as
default:

       export XCURSOR_PATH=$PREFIX/share/icons
       ln -s path_to_cursor_theme $XCURSOR_PATH/default
       $PREFIX/bin/weston --xserver


Todo:

The build documentation really should be updated to document the xcursor
dependency.

XCURSOR_PATH should be documented in weston.1

In the code the  pointer returned by XcursorLibraryLoadImages() must be checked
before it is used, but I think the best idea would be to abort at weston
startup if the required cursor images are not provided by the system.

Adding proper xcursors would be even better.

cu,
 Knut

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Wayland-bugs mailing list