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