mirror of
https://gitlab.freedesktop.org/xorg/lib/libx11.git
synced 2026-05-08 07:58:04 +02:00
ximcp/imLckup: Handle negative return value from _Xlcwctomb
Fixed by negative value to memcpy by checking for the negative return value of _Xlcwctomb and returning 0/XLookupNone in that case. a negative value was passed to memcpy Unfortunately the other return values for *status don't fit into the error (which appears to indicate some internal error or running out of memory). The other valid status codes are XBufferOverflow, XLookupNone, XLookupChars, XLookupKeySym, and XLookupBoth. Each of these has a specific meaning attached. Reviewed-by: Ander Conselvan de Oliveira <ander.conselvan-de-oliveira@nokia.com> Signed-off-by: Erkki Seppälä <erkki.seppala@vincit.fi> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
This commit is contained in:
parent
79a5c86e02
commit
1346b9ea3b
1 changed files with 4 additions and 0 deletions
|
|
@ -63,6 +63,10 @@ _XimLocalMbLookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
|
|||
unsigned char pattern = ic->private.local.brl_committed;
|
||||
char mb[XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)];
|
||||
ret = _Xlcwctomb(ic->core.im->core.lcd, mb, BRL_UC_ROW | pattern);
|
||||
if(ret < 0) {
|
||||
if(status) *status = XLookupNone;
|
||||
return(0);
|
||||
}
|
||||
if(ret > bytes) {
|
||||
if(status) *status = XBufferOverflow;
|
||||
return(ret);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue