text-input/input-method: handle strdup() failure
This commit is contained in:
parent
eb5f23d6d0
commit
e326b76959
|
@ -88,6 +88,10 @@ static void im_commit_string(struct wl_client *client,
|
|||
}
|
||||
free(input_method->pending.commit_text);
|
||||
input_method->pending.commit_text = strdup(text);
|
||||
if (input_method->pending.commit_text == NULL) {
|
||||
wl_client_post_no_memory(client);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void im_set_preedit_string(struct wl_client *client,
|
||||
|
@ -102,6 +106,10 @@ static void im_set_preedit_string(struct wl_client *client,
|
|||
input_method->pending.preedit.cursor_end = cursor_end;
|
||||
free(input_method->pending.preedit.text);
|
||||
input_method->pending.preedit.text = strdup(text);
|
||||
if (input_method->pending.preedit.text == NULL) {
|
||||
wl_client_post_no_memory(client);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void im_delete_surrounding_text(struct wl_client *client,
|
||||
|
|
|
@ -171,6 +171,10 @@ static void text_input_commit(struct wl_client *client,
|
|||
if (text_input->pending.surrounding.text) {
|
||||
text_input->current.surrounding.text =
|
||||
strdup(text_input->pending.surrounding.text);
|
||||
if (text_input->current.surrounding.text == NULL) {
|
||||
wl_client_post_no_memory(client);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
bool old_enabled = text_input->current_enabled;
|
||||
|
|
Loading…
Reference in New Issue