From 21b9245ccccef613f655d3d7f54046e858d4b0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Wed, 6 Jan 2016 17:44:26 +0100 Subject: [PATCH] x11: Prevent leak on XIQueryDevice Per http://linux.die.net/man/3/xiquerydevice: > XIFreeDeviceInfo frees the information returned by > XIQueryDevice. --- src/api/x11/input.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/api/x11/input.rs b/src/api/x11/input.rs index d962e7fd..2ebc9897 100644 --- a/src/api/x11/input.rs +++ b/src/api/x11/input.rs @@ -226,7 +226,7 @@ impl XInputEventHandler { for axis_id in 0..axis_state.mask_len { if ffi::XIMaskIsSet(&mask, axis_id) { let axis_value = unsafe{*axis_state.values.offset(axis_count)}; - let delta = calc_scroll_deltas(event_data, axis_id, axis_value, &self.axis_list, + let delta = calc_scroll_deltas(event_data, axis_id, axis_value, &self.axis_list, &mut self.current_state.axis_values); scroll_delta.0 += delta.0; scroll_delta.1 += delta.1; @@ -314,7 +314,11 @@ fn read_input_axis_info(display: &Arc) -> Vec { } } } - + + unsafe { + (display.xinput2.XIFreeDeviceInfo)(devices); + } + axis_list }