Hi,
On 17-11-15 09:20, Peter Hutterer wrote:
A device that fails pre_init has a ref to the libinput context but may not
have a pInfo->private. For those devices we never call libinput_unref() and
the libinput struct never gets freed.
Thus if at least one device didn't pass pre_init, we never cleaned up after
ourselves.
Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
Looks good to me: Reviewed-by: Hans de Goede <hdego...@redhat.com>
Regards,
Hans
---
src/xf86libinput.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index f69943c..a4d9bd5 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -1576,6 +1576,8 @@ fail:
valuator_mask_free(&driver_data->valuators_unaccelerated);
free(path);
free(driver_data);
+ if (libinput)
+ driver_context.libinput = libinput_unref(libinput);
return BadValue;
}
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel