fix: check if resource is good before accessing it in DnD functions#13852
Draft
StevenArai wants to merge 1 commit intohyprwm:mainfrom
Draft
fix: check if resource is good before accessing it in DnD functions#13852StevenArai wants to merge 1 commit intohyprwm:mainfrom
StevenArai wants to merge 1 commit intohyprwm:mainfrom
Conversation
Prevent use-after-free crash when accessing Wayland resources that may have been destroyed. Add good() checks to all CWLDataSourceResource methods that access m_resource directly. Fixes crash in sendDndFinished() when called from forceCleanupDnd() during XWayland DnD cleanup.
|
Hello and thank you for making a PR to Hyprland! Please check the PR Guidelines and make sure your PR follows them. If your code can be tested, please always add tests. See more here. beep boop, I'm just a bot. A real human will review your PR soon. |
Author
|
clang-format check didnt pass... |
Member
|
rebase on main and run clang-format, should be ok |
Author
it isnt my code not passing |
Member
|
yes thats why rebase on main |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prevent use-after-free crash when accessing wayland resources that may have been destroyed. Add good() checks to all
CWLDataSourceResourcemethods that access m_resource directly.Fixes crash in
sendDndFinished()when called fromforceCleanupDnd()during xwayland dnd cleanup.Describe your PR, what does it fix/add?
this pr fixes a crash in dnd code. The crash happens when im dragging a file from GNOME file manager (nautilus) to vscode and it brings me to the safe mode.
I add
good()checks to allCWLDataSourceResourcemethods. These checks make sure the resource is valid before anyone could use it.the crash was in
sendDndFinished()when called fromforceCleanupDnd()during xwayland dnd cleanup.Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
The crash happens sometimes when stopping DnD operations with XWayland apps. The backtrace shows:
wl_resource_get_version()
CWLDataSourceResource::sendDndFinished()
CX11DataDevice::forceCleanupDnd()
CWLDataDeviceProtocol::abortDrag()
It's not replicatable stably on my environment, so im having trouble doing a further test over it.
Is it ready for merging, or does it need work?
I want someone with same problem to have a test for me, if my work isnt pure garbage(
sorry for bad English :(