mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 16:42:26 +00:00
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
Block a user