New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8274929: Crash while reading specific clipboard content #662
8274929: Crash while reading specific clipboard content #662
Conversation
👋 Welcome back kcr! A progress list of the required criteria for merging this PR into |
Webrevs
|
modules/javafx.graphics/src/main/native-glass/win/GlassClipboard.cpp
Outdated
Show resolved
Hide resolved
@kevinrushforth This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been no new commits pushed to the ➡️ To integrate this PR with the above commit message to the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changes look fine to me
import sun.awt.datatransfer.ClipboardTransferable; | ||
import sun.awt.datatransfer.SunClipboard; | ||
|
||
import static org.junit.Assert.*; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure about how strict we are about using wildcard imports in tests in JavaFX. You can change this or keep it as it is, depending upon the answer to the first statement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general wildcard imports are discouraged; static imports (e.g., Assert.*
) are an exception used in many of our tests.
/integrate |
Going to push as commit effcc86. |
@kevinrushforth Pushed as commit effcc86. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This bug is caused by not sanity checking the data returned by a call to the Windows Clipboard
IDataObject::GetData
method. When requesting a file descriptor with a format of eitherCFSTR_FILEDESCRIPTORA
orCFSTR_FILEDESCRIPTORW
, which returns a list of file names, the first word of the returned data buffer is supposed to be the number of items that follow. Applications can put data on the clipboard in such a way that it will respond to a request to return the list of files from the clipboard with data that isn't formatted correctly, so we can't assume that the first word is a valid count.The fix is to check the returned buffer size against the item count. I added a regression test that fails before and passes after the fix.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jfx pull/662/head:pull/662
$ git checkout pull/662
Update a local copy of the PR:
$ git checkout pull/662
$ git pull https://git.openjdk.java.net/jfx pull/662/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 662
View PR using the GUI difftool:
$ git pr show -t 662
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jfx/pull/662.diff