Created attachment 117363 [details] weston output Weston with rdp-backend crashes with double free error message when unknown messages is used. Reproduction steps: weston --backend=rdp-backend.so --rdp4-key=test --makemecrash [snip] [23:58:23.132] fatal: unhandled option: --makemecrash *** Error in `weston': double free or corruption (!prev): 0x0000000000f0a8c0 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x77a8d)[0x7f44f4e60a8d] /lib64/libc.so.6(cfree+0x5cd)[0x7f44f4e6cd2d] weston[0x40858a] /lib64/libc.so.6(__libc_start_main+0xf0)[0x7f44f4e09700] weston(_start+0x29)[0x4089f9] Explanation: src/main.c:826 weston_compositor_destroy(ec) src/compositor.c:weston_compositor_destroy() compositor->backend->destroy(compositor); free(compositor); src/compositor-rdp.c:rdp_destroy(struct weston_compositor *ec) { weston_compositor_shutdown(ec); free(ec); } weston_compositor_destroy() is the same function rdp_destroy(). ec and compositor are the same pointers. free(compositor) is the second free() that crashes weston.
Created attachment 117364 [details] [review] free rdp_backend, not compositor
Fixed in master. http://cgit.freedesktop.org/wayland/weston/commit/?id=405ae2febaa3f1a6de5bd0eb65d9a6a811040cc9
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.