text-input: Clear out context->input pointer
authorDaniel Stone <daniels@collabora.com>
Thu, 10 Nov 2016 15:47:56 +0000 (15:47 +0000)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Fri, 18 Nov 2016 13:42:42 +0000 (15:42 +0200)
commit97863d6f0de9e7e7dcfb570daef41b0eb4f333a8
tree4539667a8dcf2754b47e4501d18729e7ce30d278
parente7fff215ada3fd3d1b2af664888f960c082f9065
text-input: Clear out context->input pointer

If we destroy the text_input (e.g. due to surface deactivation) whilst
the IM manager (the client holding the input_method_context resource,
usually weston-keyboard) sends an event, we can hit a segfault in
text-backend. This is because we free the text_input structure, but
don't actually clear the context->input structure even when we send the
deactivate event.

This is clearly intended to be catered for, since context->input is
always checked for NULL before we relay any events.

This is enough to fix one cause of text-test failing, but it's
ultimately error-prone until we have a no-op test-shell; there is still
a race where weston-desktop-shell can launch weston-keyboard before
text-test manages to bind zwp_text_input_manager.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Maniphest Tasks: https://phabricator.freedesktop.org/T7615
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
compositor/text-backend.c