kwin/plugins/platforms/drm
Méven Car e8a1f8eccc Avoid crash in KWin::DrmOutput::updateCursor
Summary:
BUG: 420077

Sample stack traces :

From bug:

  #2  QImage::copy (this=this@entry=0x558117775e20, r=...) at image/qimage.cpp:1172
  #3  0x00007f22d0a24cdf in QImage::detach (this=this@entry=0x558117775e20) at image/qimage.cpp:1091
  #4  0x00007f22d0a25ae0 in QImage::fill (this=0x558117775e20, color=...) at image/qimage.cpp:1806
  #5  0x00007f22d0a25f5f in QImage::fill (this=this@entry=0x558117775e20, color=color@entry=Qt::transparent) at image/qimage.cpp:1780
  #6  0x00007f22bf3bdffd in KWin::DrmOutput::updateCursor (this=0x5581176fb780) at ./plugins/platforms/drm/drm_output.cpp:175
  #7  0x00007f22bf3b0e55 in KWin::DrmBackend::updateCursor (this=0x558117669b60) at ./plugins/platforms/drm/drm_backend.cpp:701

Locally reproduced:

  #0  0x00007f360611e159 in KWayland::Server::OutputDeviceInterface::transform() const (this=<optimized out>)
      at /home/meven/kde/src/kwayland/src/server/outputdevice_interface.cpp:590
  #1  0x00007f3607438059 in KWin::AbstractWaylandOutput::transform() const (this=this@entry=0x5645bed10f90) at /home/meven/kde/src/kwin/abstract_wayland_output.cpp:317
  #2  0x00007f35ecd8acd3 in KWin::DrmOutput::matrixDisplay(QSize const&) const (this=0x5645bed10f90, s=...)
      at /home/meven/kde/src/kwin/plugins/platforms/drm/drm_output.cpp:155
  #3  0x00007f35ecd8efa9 in KWin::DrmOutput::updateCursor() (this=<optimized out>) at /home/meven/kde/src/kwin/plugins/platforms/drm/drm_output.cpp:179
  #4  0x00007f35ecd81db5 in KWin::DrmBackend::updateCursor() (this=0x5645bec743a0) at /home/meven/kde/src/kwin/plugins/platforms/drm/drm_backend.cpp:701
  #5  0x00007f36049e7fe7 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #6  0x00007f36075ee43f in KWin::Cursors::currentCursorChanged(KWin::Cursor*) (this=<optimized out>, _t1=<optimized out>)
      at /home/meven/kde/build/kwin/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:385

Test Plan: Could not reproduce

Reviewers: #kwin, zzag, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: ngraham, apol, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D28889
2020-04-17 18:25:31 +02:00
..
CMakeLists.txt Cleanup style in CMakeLists.txt files 2019-09-17 16:03:05 +03:00
drm.json Revert "[kcm/effects] Clip ListView" 2020-02-22 11:53:59 +01:00
drm_backend.cpp [platforms/drm] Allow running without outputs 2020-01-08 10:12:39 +01:00
drm_backend.h [platforms/drm] Rework enablement and dpms switching 2019-09-05 17:36:21 +02:00
drm_buffer.cpp
drm_buffer.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
drm_buffer_gbm.cpp
drm_buffer_gbm.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
drm_inputeventfilter.cpp Be consistent about touch point id type: use qint32 2019-08-11 22:15:05 +02:00
drm_inputeventfilter.h Be consistent about touch point id type: use qint32 2019-08-11 22:15:05 +02:00
drm_object.cpp [platforms/drm] Return when property found 2019-12-11 18:38:21 +01:00
drm_object.h [platforms/drm] Do plane and object chore 2019-12-11 18:05:35 +01:00
drm_object_connector.cpp
drm_object_connector.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
drm_object_crtc.cpp
drm_object_crtc.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
drm_object_plane.cpp [platforms/drm] Align plane type enum with kernel 2019-12-11 18:19:41 +01:00
drm_object_plane.h [platforms/drm] Align plane type enum with kernel 2019-12-11 18:19:41 +01:00
drm_output.cpp Avoid crash in KWin::DrmOutput::updateCursor 2020-04-17 18:25:31 +02:00
drm_output.h Use Transform enum internally 2019-11-27 21:08:20 +01:00
drm_pointer.h Update my email address 2020-01-14 18:17:18 +02:00
edid.cpp Update my email address 2020-01-14 18:17:18 +02:00
edid.h Update my email address 2020-01-14 18:17:18 +02:00
egl_gbm_backend.cpp Revert "Remove vsync detection and configurability" 2020-01-16 10:00:12 +01:00
egl_gbm_backend.h [platforms/drm] Do EglGbmBackend chore 2019-12-10 11:00:59 +01:00
egl_stream_backend.cpp Revert "Remove vsync detection and configurability" 2020-01-16 10:00:12 +01:00
egl_stream_backend.h Rename ShellClient to XdgShellClient 2019-09-23 17:28:56 +03:00
gbm_surface.cpp
gbm_surface.h
logging.cpp
logging.h
remoteaccess_manager.cpp
remoteaccess_manager.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
scene_qpainter_drm_backend.cpp
scene_qpainter_drm_backend.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
screens_drm.cpp
screens_drm.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00