[PATCH] text: Respawn input method process if it exits
Eduardo Lima (Etrunko)
eduardo.lima at linux.intel.com
Tue May 14 09:07:08 PDT 2013
On 05/14/2013 12:47 PM, Michael Hasselmann wrote:
> On Tue, 2013-05-14 at 12:16 -0300, Eduardo Lima (Etrunko) wrote:
>> +static void launch_input_method(struct text_backend *text_backend);
>> +
>> static void
>> handle_input_method_sigchld(struct weston_process *process, int status)
>> {
>> + uint32_t time;
>> struct text_backend *text_backend =
>> container_of(process, struct text_backend, input_method.process);
>>
>> text_backend->input_method.process.pid = 0;
>> text_backend->input_method.client = NULL;
>> +
>> + /* if input_method dies more than 5 times in 10 seconds, give up */
>> + time = weston_compositor_get_time();
>> + if (time - text_backend->input_method.deathstamp > 10000) {
>> + text_backend->input_method.deathstamp = time;
>> + text_backend->input_method.deathcount = 0;
>> + }
>> +
>> + text_backend->input_method.deathcount++;
>> + if (text_backend->input_method.deathcount > 5) {
>> + weston_log("weston-desktop-shell died, giving up.\n");
>
> Wrong log message, should be "input_method died, giving up.\n"
>
Ah the wonders of copy and paste, thanks for the spot. :) I am sending
the patch with the proper message again.
>> + return;
>> + }
>> +
>> + weston_log("input_method died, respawning...\n");
>> + launch_input_method(text_backend);
>
> I am not smart enough to figure out whether this could be abused to
> launch a (possibly untrusted) 3rd party input method at runtime, say by
> manipulating some cached config and then triggering a crash in the input
> method.
>
Yes, this is something that should concern not only the input method,
but also other plugins, such as the desktop shell itself.
Regards, Etrunko
--
Eduardo de Barros Lima (Etrunko)
Software Engineer, Open Source Technology Center
Intel Corporation
São Paulo, Brazil
eduardo.lima at linux.intel.com
More information about the wayland-devel
mailing list