On Wed, Mar 19, 2008 at 06:16:36PM +0900, Kusanagi Kouichi wrote:
Fix bug #9838. http://bugs.winehq.org/show_bug.cgi?id=9838
dlls/winex11.drv/keyboard.c | 25 ++++++++++++++++--------- dlls/winex11.drv/xim.c | 16 ++++++++++------ 2 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c index 33640db..386a471 100644 --- a/dlls/winex11.drv/keyboard.c +++ b/dlls/winex11.drv/keyboard.c @@ -1365,22 +1365,29 @@ void X11DRV_KeyEvent( HWND hwnd, XEvent *xev ) wine_tsx11_lock(); /* Clients should pass only KeyPress events to XmbLookupString */ if (xic && event->type == KeyPress)
- { ascii_chars = XmbLookupString(xic, event, Str, sizeof(Str), &keysym, &status);
if (status == XBufferOverflow)
{
char buf[ascii_chars];
You should not use dynamic sized arrays. Use HeapAlloc() to allocate them.
Ciao, Marcus