Message ID | 20221116103110.1746497-1-benjamin.tissoires@redhat.com |
---|---|
State | Accepted |
Commit | 576e619ba4a47329bf55ada2d184e72529793fbd |
Headers | show |
Series | HID: bpf: return non NULL data pointer when CONFIG_HID_BPF is not set | expand |
On Wed, 16 Nov 2022, Benjamin Tissoires wrote: > dispatch_hid_bpf_device_event() is supposed to return either an error, > or a valid pointer to memory containing the data. > > Returning NULL simply makes a segfault when CONFIG_HID_BPF is not set > for any processed event. > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> I have added Fixes: 658ee5a64fcfbbf ("HID: bpf: allocate data memory for device_event BPF program") and applied on top of the HID-BPF pile. Thanks,
diff --git a/include/linux/hid_bpf.h b/include/linux/hid_bpf.h index 9b11f8f25ad5..3ca85ab91325 100644 --- a/include/linux/hid_bpf.h +++ b/include/linux/hid_bpf.h @@ -148,7 +148,7 @@ void hid_bpf_device_init(struct hid_device *hid); u8 *call_hid_bpf_rdesc_fixup(struct hid_device *hdev, u8 *rdesc, unsigned int *size); #else /* CONFIG_HID_BPF */ static inline u8 *dispatch_hid_bpf_device_event(struct hid_device *hid, enum hid_report_type type, - u8 *data, u32 *size, int interrupt) { return NULL; } + u8 *data, u32 *size, int interrupt) { return data; } static inline int hid_bpf_connect_device(struct hid_device *hdev) { return 0; } static inline void hid_bpf_disconnect_device(struct hid_device *hdev) {} static inline void hid_bpf_destroy_device(struct hid_device *hid) {}
dispatch_hid_bpf_device_event() is supposed to return either an error, or a valid pointer to memory containing the data. Returning NULL simply makes a segfault when CONFIG_HID_BPF is not set for any processed event. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> --- This was detected by my own CI. Yes, a little bit embarrassing... It applies on top of for-6.2/hid-bpf in case it was not obvious Cheers, Benjamin --- include/linux/hid_bpf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)