[PATCH weston v3] compositor-rdp: rdp_destroy() double free error #91457

Hardening rdp.effort at gmail.com
Thu Aug 6 13:29:12 PDT 2015


Le 05/08/2015 22:20, Derek Foreman a écrit :
> On 05/08/15 03:21 PM, Dawid Gajownik wrote:
>> When something goes wrong during weston initialization,
>> weston_compositor_destroy() is executed. It destroys the backend and
>> then frees compositor memory. Unfortunately RDP backend is not correctly
>> destroyed. It frees compositor instead of a backend memory. This causes
>> later a double free error. The easiest way to reproduce a problem is to
>> run weston with an invalid option.
>>
>> Additionally some other objects of rdp_backend structure are not
>> destroyed/freed. The patch fixes both issues.
>>
>> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91457
>>
>> v3: comply with Weston coding style, this time for real
>> v2: comply with Weston coding style
>>
>> Signed-off-by: Dawid Gajownik <gajownik at gmail.com>
> 
> Reviewed-by: Derek Foreman <derekf at osg.samsung.com>

Looks good to me too

Reviewed-by: David FORT <contact at hardening-consulting.com>

> 
>> ---
>>  src/compositor-rdp.c | 13 ++++++++++++-
>>  1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
>> index 6eac7f9..869c3f3 100644
>> --- a/src/compositor-rdp.c
>> +++ b/src/compositor-rdp.c
>> @@ -541,9 +541,20 @@ rdp_restore(struct weston_compositor *ec)
>>  static void
>>  rdp_destroy(struct weston_compositor *ec)
>>  {
>> +	struct rdp_backend *b = (struct rdp_backend *) ec->backend;
>> +	int i;
>> +
>>  	weston_compositor_shutdown(ec);
>> +	for (i = 0; i < MAX_FREERDP_FDS; i++)
>> +		if (b->listener_events[i])
>> +			wl_event_source_remove(b->listener_events[i]);
>> +
>> +	freerdp_listener_free(b->listener);
>>  
>> -	free(ec);
>> +	free(b->server_cert);
>> +	free(b->server_key);
>> +	free(b->rdp_key);
>> +	free(b);
>>  }
>>  
>>  static
>>
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 


-- 
David FORT
website: http://www.hardening-consulting.com/



More information about the wayland-devel mailing list