aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <ecoal95@gmail.com>2016-01-06 17:44:26 +0100
committerEmilio Cobos Álvarez <ecoal95@gmail.com>2016-01-06 17:44:26 +0100
commit21b9245ccccef613f655d3d7f54046e858d4b0df (patch)
tree12c19e1833d5b3451ae63e4b7e62a234c4210b19
parentf59be2588c47a8dab2da00f12661d204576c0bd3 (diff)
downloadglutin-21b9245ccccef613f655d3d7f54046e858d4b0df.tar.gz
glutin-21b9245ccccef613f655d3d7f54046e858d4b0df.zip
x11: Prevent leak on XIQueryDevice
Per http://linux.die.net/man/3/xiquerydevice: > XIFreeDeviceInfo frees the information returned by > XIQueryDevice.
-rw-r--r--src/api/x11/input.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/api/x11/input.rs b/src/api/x11/input.rs
index d962e7f..2ebc989 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<XConnection>) -> Vec<Axis> {
}
}
}
-
+
+ unsafe {
+ (display.xinput2.XIFreeDeviceInfo)(devices);
+ }
+
axis_list
}