[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