https://bugs.kde.org/show_bug.cgi?id=514290

            Bug ID: 514290
           Summary: System Settings crashes in getJoystickHidInfo when
                    plugging in a wired Nintendo Switch controller
    Classification: Applications
           Product: systemsettings
      Version First 6.5.80
       Reported In:
          Platform: KDE Linux
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: kcm_joystick
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected], [email protected]
  Target Milestone: ---

STEPS TO REPRODUCE
1. Open System Settings > Game Controller
2. Plug in a Nintendo Switch wired controller




OBSERVED RESULT
System Settings crashes 100% of the time:

#0  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at
pthread_kill.c:44
#1  0x00007efd472459d3 in __pthread_kill_internal (threadid=<optimized out>,
signo=11)
    at pthread_kill.c:89
#2  0x00007efd471eb3a0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007efd492c5e50 in KCrash::defaultCrashHandler (sig=11)
    at /usr/src/debug/kde-banana-kcrash-git/kcrash/src/kcrash.cpp:605
#4  0x00007efd471eb4d0 in <signal handler called> () at /usr/lib/libc.so.6
#5  __wcslen_evex () at ../sysdeps/x86_64/multiarch/strlen-evex-base.S:81
#6  0x00007efd1871bf4a in SDL_wcslen_REAL (string=0x0)
    at /usr/src/debug/sdl3/SDL3-3.2.28/src/stdlib/SDL_string.c:751
#7  SDL_wcsdup_REAL (string=0x0) at
/usr/src/debug/sdl3/SDL3-3.2.28/src/stdlib/SDL_string.c:805
#8  0x00007efd1891bbcb in SDL_hid_enumerate_REAL
    (vendor_id=<optimized out>, product_id=<optimized out>)
    at /usr/src/debug/sdl2-compat/sdl2-compat-2.32.60/src/sdl2_compat.c:11958
#9  0x00007efd38054f47 in getJoystickHidInfo
    (vendor=vendor@entry=8406, product=product@entry=-22767,
path="/dev/hidraw0")
    at /home/nate/kde/src/plasma-desktop/kcms/gamecontroller/device.cpp:90
#10 0x00007efd38056971 in Device::open (this=this@entry=0x5623e61f1600)
    at /usr/include/c++/15.2.1/bits/basic_string.tcc:248
#11 0x00007efd380510c8 in DeviceModel::addDevice
(this=this@entry=0x5623e3a0d400, deviceIndex=0)
    at
/home/nate/kde/src/plasma-desktop/kcms/gamecontroller/devicemodel.cpp:132
#12 0x00007efd38052eac in DeviceModel::poll (this=0x5623e3a0d400)
    at /home/nate/kde/src/plasma-desktop/kcms/gamecontroller/devicemodel.cpp:93
#13 0x00007efd4793834f in QtPrivate::QSlotObjectBase::call
    (this=0x5623e3a6e130, r=0x5623e3a0d400, a=0x7ffc9eef3290, this=<optimized
out>, r=<optimized out>, a=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#14 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4257
#15 0x00007efd4793fe5c in QMetaObject::activate<void, QTimer::QPrivateSignal>
    (sender=<optimized out>, mo=<optimized out>, local_signal_index=0, ret=0x0)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:319
#16 QTimer::timeout (this=<optimized out>, _t1=...)
    at
/usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qtimer.cpp:182
#17 QTimer::timerEvent (e=<optimized out>, this=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:331
#18 QTimer::timerEvent (this=<optimized out>, e=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:325
#19 0x00007efd47925936 in QObject::event (this=<optimized out>, e=<optimized
out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1388
#20 0x00007efd488861c0 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x5623e3d904a0, e=0x7ffc9eef3430)
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#21 0x00007efd478cb958 in QCoreApplication::notifyInternal2
    (receiver=0x5623e3d904a0, event=0x7ffc9eef3430)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#22 0x00007efd47a8d9af in QCoreApplication::sendEvent
    (receiver=<optimized out>, event=0x7ffc9eef3430)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#23 QTimerInfoList::activateTimers (this=<optimized out>)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:426
#24 0x00007efd47babdd1 in timerSourceDispatch (source=<optimized out>)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:152
#25 idleTimerSourceDispatch (source=<optimized out>)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:199
#26 0x00007efd4669ef8d in g_main_dispatch (context=0x7efd3c000f60) at
../glib/glib/gmain.c:3565
#27 0x00007efd466a0657 in g_main_context_dispatch_unlocked
(context=0x7efd3c000f60)
    at ../glib/glib/gmain.c:4425
#28 g_main_context_iterate_unlocked
    (context=context@entry=0x7efd3c000f60, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4490
#29 0x00007efd466a0865 in g_main_context_iteration (context=0x7efd3c000f60,
may_block=1)
    at ../glib/glib/gmain.c:4556
#30 0x00007efd47ba9152 in QEventDispatcherGlib::processEvents
(this=0x5623e3612b40, flags=...)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#31 0x00007efd478d6786 in QEventLoop::processEvents (this=0x7ffc9eef3700,
flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#32 QEventLoop::exec (this=0x7ffc9eef3700, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#33 0x00007efd478d03f1 in QCoreApplication::exec ()
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#34 0x00007efd4888132a in QApplication::exec ()
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2575
#35 0x00005623a9c444a0 in main (argc=<optimized out>, argv=<optimized out>)
    at
/usr/src/debug/kde-banana-systemsettings-git/systemsettings/app/main.cpp:175


Information about the device itself, from `sudo lsusb --verbose`:

Bus 001 Device 008: ID 20d6:a711  Core (Plus) Wired Controller
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x20d6 
  idProduct          0xa711 Core (Plus) Wired Controller
  bcdDevice            5.13
  iManufacturer           0 
  iProduct                2 Core (Plus) Wired Controller
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      94
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)




SOFTWARE/OS VERSIONS
Operating System: KDE Linux 2026-01-06
KDE Plasma Version: 6.5.80
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.1
Kernel Version: 6.18.3-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 7840U w/ Radeon™ 780M Graphics
Memory: 17 GB of RAM (16.0 GB usable)
Graphics Processor: AMD Radeon 780M Graphics

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to