bug in Kernel.Upper/Lower
|Assignee:||J. Templ||% Done:|
Calling Kernel.Upper/Lower can crash the system because the argument
is not passed correctly as a single character to WinApi.CharUpperW/CharLowerW.
Instead it may be treated as a zero-terminated character string
and converted in place, which overwrites memory at an arbitrary location.
In order to fix this, the character must be zero extended to a 32-bit value
before passing it to WinApi.