Prevent crashes from illegal locale coding systems
* src/xfns.c (xic_preedit_draw_callback): * src/xterm.c (handle_one_xevent): Don't pass invalid coding systems to `setup_coding_system'.
This commit is contained in:
parent
242a2765d3
commit
6ed1994d27
2 changed files with 18 additions and 0 deletions
|
|
@ -3198,6 +3198,14 @@ xic_preedit_draw_callback (XIC xic, XPointer client_data,
|
|||
if (!output->preedit_active)
|
||||
return;
|
||||
|
||||
/* If we don't bail out here then GTK can crash
|
||||
from the resulting signal in `setup_coding_system'. */
|
||||
if (NILP (Fcoding_system_p (Vlocale_coding_system)))
|
||||
{
|
||||
text = NULL;
|
||||
goto im_abort;
|
||||
}
|
||||
|
||||
if (call_data->text)
|
||||
text = x_xim_text_to_utf8_unix (call_data->text, &text_length);
|
||||
else
|
||||
|
|
|
|||
10
src/xterm.c
10
src/xterm.c
|
|
@ -10024,6 +10024,11 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
|
||||
if (nchars < nbytes)
|
||||
{
|
||||
/* If we don't bail out here then GTK can crash
|
||||
from the resulting signal in `setup_coding_system'. */
|
||||
if (NILP (Fcoding_system_p (coding_system)))
|
||||
goto done_keysym;
|
||||
|
||||
/* Decode the input data. */
|
||||
|
||||
/* The input should be decoded with `coding_system'
|
||||
|
|
@ -11763,6 +11768,11 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
|
||||
if (nchars < nbytes)
|
||||
{
|
||||
/* If we don't bail out here then GTK can crash
|
||||
from the resulting signal in `setup_coding_system'. */
|
||||
if (NILP (Fcoding_system_p (Vlocale_coding_system)))
|
||||
goto xi_done_keysym;
|
||||
|
||||
/* Decode the input data. */
|
||||
|
||||
setup_coding_system (Vlocale_coding_system, &coding);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue