aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter K. Moss <peter@moss.dk>2021-01-08 23:50:24 +0100
committerPeter K. Moss <peter@moss.dk>2021-01-08 23:50:24 +0100
commitc4c82a8d8017495e8183e083e1ba26b0fc2eb2eb (patch)
tree6b5797eda20e764a05c53f02417b96840ee48162
parent7d10d3ee6a7c8722bac60775d66be6cb8b38b9dd (diff)
downloadhid-tminit-c4c82a8d8017495e8183e083e1ba26b0fc2eb2eb.tar.gz
hid-tminit-c4c82a8d8017495e8183e083e1ba26b0fc2eb2eb.zip
Using kfree_sensitive over kzfree for kernels >= 5.9-rc1
This modification is needed for the newer kernels as per https://github.com/torvalds/linux/commit/453431a54934d917153c65211b2dabf45562ca88
-rw-r--r--hid-tminit.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/hid-tminit.c b/hid-tminit.c
index 1538bab..59905d9 100644
--- a/hid-tminit.c
+++ b/hid-tminit.c
@@ -15,8 +15,15 @@
#include <linux/input.h>
#include <linux/slab.h>
#include <linux/module.h>
+#include <linux/version.h>
#include "hid-tminit.h"
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,1)
+ #define KFREE(ptr) kfree_sensitive(ptr)
+#else
+ #define KFREE(ptr) kzfree(ptr)
+#endif
+
/**
* On some setups initializing the T300RS crashes the kernel,
* these interrupts fix that particular issue. So far they haven't caused any
@@ -54,7 +61,7 @@ static void tminit_interrupts(struct hid_device *hdev){
}
}
- kzfree(send_buf);
+ KFREE(send_buf);
}
static void tminit_change_handler(struct urb *urb)
@@ -135,10 +142,10 @@ static void tminit_remove(struct hid_device *hdev)
usb_kill_urb(tm_wheel->urb);
- kzfree(tm_wheel->response);
- kzfree(tm_wheel->model_request);
+ KFREE(tm_wheel->response);
+ KFREE(tm_wheel->model_request);
usb_free_urb(tm_wheel->urb);
- kzfree(tm_wheel);
+ KFREE(tm_wheel);
hid_hw_stop(hdev);
}
@@ -227,10 +234,10 @@ static int tminit_probe(struct hid_device *hdev, const struct hid_device_id *id)
return ret;
-error5: kzfree(tm_wheel->response);
-error4: kzfree(tm_wheel->model_request);
+error5: KFREE(tm_wheel->response);
+error4: KFREE(tm_wheel->model_request);
error3: usb_free_urb(tm_wheel->urb);
-error2: kzfree(tm_wheel);
+error2: KFREE(tm_wheel);
error1: hid_hw_stop(hdev);
error0:
return ret;