Approved
-phil.
On 9/6/19 8:05 PM, Sergey Bylokhov wrote:
Hello.
Please review the fix for JDK 14.
Bug: https://bugs.openjdk.java.net/browse/JDK-8225101
Fix: http://cr.openjdk.java.net/~serb/8225101/webrev.00
This is the fix of the bug caused by dereferencing 0 in XkbMapNotify
notification.
The sun.awt.X11.XToolkit class contains a native pointer
"awt_XKBDescPtr" which
is initialized at the start of the application or by the
"XkbNewKeyboardNotify"
notification. And deallocated by the same "XkbNewKeyboardNotify" or
via "ShutdownHook"
The "awt_XKBDescPtr" in the changed code in the webrev might be NULL
in two situations:
- Sometime before the "XlibWrapper.XkbGetMap" returned NULL for some
reason.
- The shutdown hook start to execute in parallel and dispose of the
current keyboard info and
sets "awt_XKBDescPtr" to 0
I was able to reproduce the bug by some script which floods the
XServer with millions of
keyboard requests, which makes the system unresponsive but allow to
get the timings to
reproduce the bug.
As a fix, I suggest using "awt_XKBDescPtr" in "XkbMapNotify" only if
it is not 0, as we
already do in all other places.