https://bugs.kde.org/show_bug.cgi?id=500519
Bug ID: 500519 Summary: KWin crashes when bogus size window is created Classification: Plasma Product: kwin Version: 6.3.1 Platform: Arch Linux OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: generic-crash Assignee: kwin-bugs-n...@kde.org Reporter: w...@nereid.pl Target Milestone: --- I have not initialized a variable in my wayland client program, which resulted in a request to create a nonsense size window. Instead of refusing the request, KWin crashed. (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x000075b60c2a56d3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89 #2 0x000075b60c24bba0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x000075b60efcd4da in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.11.0/src/kcrash.cpp:605 #4 <signal handler called> #5 std::__fill_a1<unsigned int*, unsigned int> (__first=0x0, __last=0x4, __value=<error reading variable: Cannot access memory at address 0x4>) at /usr/include/c++/14.2.1/bits/stl_algobase.h:947 #6 std::__fill_a<unsigned int*, unsigned int> (__first=0x0, __last=0x4, __value=<error reading variable: Cannot access memory at address 0x4>) at /usr/include/c++/14.2.1/bits/stl_algobase.h:998 #7 std::__fill_n_a<unsigned int*, int, unsigned int> (__first=0x0, __n=1, __n@entry=0, __value=<error reading variable: Cannot access memory at address 0x4>) at /usr/include/c++/14.2.1/bits/stl_algobase.h:1154 #8 std::fill_n<unsigned int*, int, unsigned int> (__first=0x0, __n=1, __n@entry=0, __value=<error reading variable: Cannot access memory at address 0x4>) at /usr/include/c++/14.2.1/bits/stl_algobase.h:1183 #9 KWin::clamp_row (left=left@entry=1, width=width@entry=1436714451, right=right@entry=-1436714452, src=src@entry=0x4, dest=0x0) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene_opengl.cpp:289 #10 0x000075b60e8ef04a in KWin::clamp (image=..., viewport=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene_opengl.cpp:323 #11 KWin::SceneOpenGLDecorationRenderer::renderPart (this=this@entry=0x5d4871a8e2f0, rect=..., partRect=..., textureOffset=..., devicePixelRatio=devicePixelRatio@entry=1, rotated=rotated@entry=false) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene_opengl.cpp:413 #12 0x000075b60e8ef470 in KWin::SceneOpenGLDecorationRenderer::render (this=0x5d4871a8e2f0, region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene_opengl.cpp:364 #13 0x000075b60e8c8dd0 in KWin::DecorationItem::preprocess (this=0x5d487181bb90) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/decorationitem.cpp:143 #14 0x000075b60e8d653d in KWin::ItemRendererOpenGL::createRenderNode (this=0x5d48712f10b0, item=<optimized out>, context=0x7ffe0ad45480) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/itemrenderer_opengl.cpp:154 #15 0x000075b60e8d7002 in KWin::ItemRendererOpenGL::createRenderNode (this=this@entry=0x5d48712f10b0, item=item@entry=0x5d4871a80030, context=context@entry=0x7ffe0ad45480) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/itemrenderer_opengl.cpp:223 #16 0x000075b60e8daf48 in KWin::ItemRendererOpenGL::renderItem (this=0x5d48712f10b0, renderTarget=..., viewport=..., item=0x5d4871a80030, mask=<optimized out>, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/itemrenderer_opengl.cpp:268 #17 0x000075b60e804020 in KWin::OffscreenData::maybeRender (this=this@entry=0x5d4871a89560, window=window@entry=0x5d4871a7a5e0) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/offscreeneffect.cpp:136 #18 0x000075b60e8042f5 in KWin::OffscreenEffect::drawWindow (this=0x5d48713e0d50, renderTarget=..., viewport=..., window=0x5d4871a7a5e0, mask=4, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/offscreeneffect.cpp:251 #19 0x000075b60e7e11c3 in KWin::EffectsHandler::drawWindow (this=0x5d48713431a0, renderTarget=..., viewport=..., w=<optimized out>, mask=<optimized out>, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:379 #20 0x000075b60e7e11c3 in KWin::EffectsHandler::drawWindow (this=0x5d48713431a0, renderTarget=..., viewport=..., w=<optimized out>, mask=<optimized out>, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:379 #21 0x000075b60e7e11c3 in KWin::EffectsHandler::drawWindow (this=0x5d48713431a0, renderTarget=..., viewport=..., w=<optimized out>, mask=<optimized out>, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:379 #22 0x000075b60e7e1104 in KWin::EffectsHandler::paintWindow (this=0x5d48713431a0, renderTarget=..., viewport=..., w=0x5d4871a7a5e0, mask=4, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:350 #23 0x000075b60e7e1104 in KWin::EffectsHandler::paintWindow (this=0x5d48713431a0, renderTarget=..., viewport=..., w=0x5d4871a7a5e0, mask=4, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:350 #24 0x000075b60e7e1104 in KWin::EffectsHandler::paintWindow (this=0x5d48713431a0, renderTarget=..., viewport=..., w=0x5d4871a7a5e0, mask=4, region=..., data=...) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:350 #25 0x000075b60e8e7383 in KWin::WorkspaceScene::paintWindow (this=<optimized out>, renderTarget=..., viewport=..., item=0x5d4871a80030, mask=4, region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene.cpp:529 #26 KWin::WorkspaceScene::paintWindow (this=this@entry=0x5d4871342450, renderTarget=..., viewport=..., item=0x5d4871a80030, mask=4, region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene.cpp:522 #27 0x000075b60e8e7697 in KWin::WorkspaceScene::paintSimpleScreen (this=0x5d4871342450, renderTarget=..., viewport=..., region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene.cpp:502 #28 0x000075b60e7e1036 in KWin::EffectsHandler::paintScreen (this=0x5d48713431a0, renderTarget=..., viewport=..., mask=<optimized out>, region=..., screen=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:322 #29 0x000075b60e7e1036 in KWin::EffectsHandler::paintScreen (this=0x5d48713431a0, renderTarget=..., viewport=..., mask=<optimized out>, region=..., screen=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:322 #30 0x000075b60e7e1036 in KWin::EffectsHandler::paintScreen (this=0x5d48713431a0, renderTarget=..., viewport=..., mask=<optimized out>, region=..., screen=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.1/src/effect/effecthandler.cpp:322 #31 0x000075b60e8e7818 in KWin::WorkspaceScene::paint (this=0x5d4871342450, renderTarget=..., region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene.cpp:437 #32 0x000075b60e8d8ac5 in KWin::SceneDelegate::paint (this=<optimized out>, renderTarget=..., region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/scene.cpp:44 #33 0x000075b60e76f937 in KWin::Compositor::paintPass (this=0x5d4870c90a50, layer=0x5d487136b730, renderTarget=..., region=...) at /usr/src/debug/kwin/kwin-6.3.1/src/compositor.cpp:177 #34 0x000075b60e77bc59 in KWin::WaylandCompositor::composite (this=0x5d4870c90a50, renderLoop=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.1/src/compositor_wayland.cpp:435 #35 0x000075b60bdb1a49 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486 #36 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4115 #37 0x000075b60e790b45 in KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_renderloop.cpp:211 #38 0x000075b60e795113 in KWin::RenderLoopPrivate::dispatch (this=0x5d4870bbe7b0) at /usr/src/debug/kwin/kwin-6.3.1/src/core/renderloop.cpp:190 #39 0x000075b60bdb1a49 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486 #40 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4115 #41 0x000075b60bdbaa75 in QTimer::timeout (this=0x5d4870bbe9f0, _t1=...) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qtimer.cpp:223 #42 QTimer::timerEvent (e=<optimized out>, this=0x5d4870bbe9f0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:285 #43 QTimer::timerEvent (this=0x5d4870bbe9f0, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:279 #44 0x000075b60bda2ef9 in QObject::event (this=0x5d4870bbe9f0, e=0x7ffe0ad46a20) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1393 #45 0x000075b60d0ff0ca in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5d4870bbe9f0, e=0x7ffe0ad46a20) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3296 #46 0x000075b60bd55b00 in QCoreApplication::notifyInternal2 (receiver=0x5d4870bbe9f0, event=0x7ffe0ad46a20) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1172 #47 0x000075b60bed5aff in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7ffe0ad46a20) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1612 #48 QTimerInfoList::activateTimers (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:426 #49 0x000075b60bede408 in QEventDispatcherUNIXPrivate::activateTimers (this=0x5d4870b34560) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:199 #50 QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:475 #51 0x000075b60ca61d93 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27 #52 0x000075b60bd606a6 in QEventLoop::processEvents (this=0x7ffe0ad46c20, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:103 #53 QEventLoop::exec (this=0x7ffe0ad46c20, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:185 #54 0x000075b60bd591d6 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74 #55 0x000075b60d0faf9a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2564 #56 0x00005d4862caf07b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.1/src/main_wayland.cpp:622 (gdb) f 10 #10 0x000075b60e8ef04a in KWin::clamp (image=..., viewport=...) at /usr/src/debug/kwin/kwin-6.3.1/src/scene/workspacescene_opengl.cpp:323 323 clamp_row(left, width, right, firstRow + left, dest); (gdb) p viewport $1 = (const QRect &) @0x7ffe0ad44500: {x1 = 1, y1 = 1, x2 = 1436714451, y2 = 28} $ qdbus org.kde.KWin /KWin supportInformation Version ======= KWin version: 6.3.1 Qt Version: 6.8.2 Qt compile version: 6.8.2 XCB compile version: 1.17.0 Operation Mode: Wayland Build Options ============= KWIN_BUILD_DECORATIONS: yes KWIN_BUILD_TABBOX: yes KWIN_BUILD_ACTIVITIES: yes HAVE_X11_XCB: yes HAVE_GLX: yes X11 === Vendor: The X.Org Foundation Vendor Release: 12401005 Protocol Version/Revision: 11/0 SHAPE: yes; Version: 0x11 RANDR: yes; Version: 0x14 DAMAGE: yes; Version: 0x11 Composite: yes; Version: 0x4 RENDER: yes; Version: 0xb XFIXES: yes; Version: 0x50 SYNC: yes; Version: 0x31 GLX: yes; Version: 0x0 Decoration ========== Plugin: org.kde.breeze Theme: Plugin recommends border size: None onAllDesktopsAvailable: true alphaChannelSupported: true closeOnDoubleClickOnMenu: false decorationButtonsLeft: 0, 2 decorationButtonsRight: 6, 3, 4, 5 borderSize: 0 gridUnit: 10 font: Noto Sans,10,-1,0,400,0,0,0,0,0,0,0,0,0,0,1 smallSpacing: 2 largeSpacing: 10 Output backend ============== Name: DRM Atomic Mode Setting on GPU 0: true Cursor ====== themeName: breeze_cursors themeSize: 24 Options ======= focusPolicy: ClickToFocus xwaylandCrashPolicy: 1 xwaylandMaxCrashCount: 3 nextFocusPrefersMouse: false clickRaise: true autoRaise: false autoRaiseInterval: 0 delayFocusInterval: 0 shadeHover: false shadeHoverInterval: 250 separateScreenFocus: true placement: 5 activationDesktopPolicy: SwitchToOtherDesktop focusPolicyIsReasonable: true borderSnapZone: 10 windowSnapZone: 10 centerSnapZone: 0 snapOnlyWhenOverlapping: false edgeBarrier: 100 cornerBarrier: 1 rollOverDesktops: false focusStealingPreventionLevel: 1 operationTitlebarDblClick: 5000 operationMaxButtonLeftClick: 5000 operationMaxButtonMiddleClick: 5015 operationMaxButtonRightClick: 5014 commandActiveTitlebar1: MouseRaise commandActiveTitlebar2: MouseNothing commandActiveTitlebar3: MouseOperationsMenu commandInactiveTitlebar1: MouseActivateAndRaise commandInactiveTitlebar2: MouseNothing commandInactiveTitlebar3: MouseOperationsMenu commandWindow1: MouseActivateRaiseOnReleaseAndPassClick commandWindow2: MouseActivateAndPassClick commandWindow3: MouseActivateAndPassClick commandWindowWheel: MouseNothing commandAll1: MouseUnrestrictedMove commandAll2: MouseToggleRaiseAndLower commandAll3: MouseUnrestrictedResize keyCmdAllModKey: 16777250 doubleClickBorderToMaximize: true condensedTitle: false electricBorderMaximize: true electricBorderTiling: true electricBorderCornerRatio: 0.25 borderlessMaximizedWindows: false killPingTimeout: 5000 compositingMode: 1 useCompositing: true hiddenPreviews: 1 glSmoothScale: 2 glStrictBinding: true glStrictBindingFollowsDriver: true glPreferBufferSwap: AutoSwapStrategy glPlatformInterface: 2 windowsBlockCompositing: true allowTearing: true interactiveWindowMoveEnabled: true Screen Edges ============ desktopSwitching: false desktopSwitchingMovingClients: false cursorPushBackDistance: 1x1 actionTopLeft: 0 actionTop: 0 actionTopRight: 0 actionRight: 0 actionBottomRight: 0 actionBottom: 0 actionBottomLeft: 0 actionLeft: 0 Screens ======= Number of Screens: 2 Screen 0: --------- Name: DP-4 Enabled: 1 Geometry: 2560,0,1920x1080 Physical size: 509x286mm Scale: 1 Refresh Rate: 60000 Adaptive Sync: incapable Screen 1: --------- Name: DP-5 Enabled: 1 Geometry: 0,0,2560x1440 Physical size: 697x392mm Scale: 1.5 Refresh Rate: 143999 Adaptive Sync: automatic Compositing =========== Compositing is active Compositing Type: OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce RTX 4090/PCIe/SSE2 OpenGL version string: 3.1.0 NVIDIA 570.86.16 OpenGL platform interface: EGL OpenGL shading language version string: 1.40 NVIDIA via Cg compiler Driver: NVIDIA Driver version: 570.86.16 GPU class: Unknown OpenGL version: 3.1 GLSL version: 1.40 X server version: 1.24.1 Linux kernel version: 6.13.3 Direct rendering: Requires strict binding: no Virtual Machine: no OpenGL 2 Shaders are used Loaded Effects: --------------- screenshot outputlocator colorpicker zoom screenedge blur contrast sessionquit logout login slidingpopups windowaperture slide glide squash maximize fullscreen frozenapp fadingpopups dimscreen wobblywindows dialogparent tileseditor overview highlightwindow blendchanges startupfeedback systembell screentransform kscreen invert Currently Active Effects: ------------------------- blur contrast Effect Settings: ---------------- screenshot: outputlocator: colorpicker: zoom: zoomFactor: 1.2 mousePointer: 0 mouseTracking: 0 focusTrackingEnabled: false textCaretTrackingEnabled: false focusDelay: 350 moveFactor: 20 targetZoom: 1 screenedge: blur: contrast: sessionquit: pluginId: sessionquit isActiveFullScreenEffect: false logout: pluginId: logout isActiveFullScreenEffect: false login: pluginId: login isActiveFullScreenEffect: false slidingpopups: slideInDuration: 200 slideOutDuration: 200 windowaperture: pluginId: windowaperture isActiveFullScreenEffect: false slide: horizontalGap: 45 verticalGap: 20 slideBackground: true glide: duration: 160 inRotationEdge: Top inRotationAngle: 3 inDistance: 30 inOpacity: 0.4 outRotationEdge: Bottom outRotationAngle: 3 outDistance: 30 outOpacity: 0 squash: pluginId: squash isActiveFullScreenEffect: false maximize: pluginId: maximize isActiveFullScreenEffect: false fullscreen: pluginId: fullscreen isActiveFullScreenEffect: false frozenapp: pluginId: frozenapp isActiveFullScreenEffect: false fadingpopups: pluginId: fadingpopups isActiveFullScreenEffect: false dimscreen: pluginId: dimscreen isActiveFullScreenEffect: false wobblywindows: stiffness: 0.1 drag: 0.85 moveFactor: 0.1 xTesselation: 20 yTesselation: 20 minVelocity: 0 maxVelocity: 1000 stopVelocity: 0.5 minAcceleration: 0 maxAcceleration: 1000 stopAcceleration: 0.5 moveWobble: true resizeWobble: true dialogparent: pluginId: dialogparent isActiveFullScreenEffect: false tileseditor: activeView: delegate: animationDuration: 200 overview: activeView: delegate: animationDuration: 300 ignoreMinimized: false filterWindows: true organizedGrid: true overviewPartialActivationFactor: 0 overviewGestureInProgress: false transitionPartialActivationFactor: 0 transitionGestureInProgress: false gridPartialActivationFactor: 0 gridGestureInProgress: false desktopOffset: searchText: highlightwindow: blendchanges: startupfeedback: type: 0 systembell: screentransform: kscreen: invert: Loaded Plugins: --------------- BounceKeysPlugin KeyNotificationPlugin StickyKeysPlugin buttonsrebind eis krunnerintegration nightlight screencast Available Plugins: ------------------ BounceKeysPlugin KeyNotificationPlugin StickyKeysPlugin buttonsrebind eis krunnerintegration nightlight screencast -- You are receiving this mail because: You are watching all bug changes.