text-input/input-method: handle strdup() failure

This commit is contained in:
Isaac Freund 2021-11-07 20:34:24 +01:00
parent eb5f23d6d0
commit e326b76959
No known key found for this signature in database
GPG Key ID: 86DED400DDFD7A11
2 changed files with 12 additions and 0 deletions

View File

@ -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,

View File

@ -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;