Skip to content
  • David Herrmann's avatar
    HID: Bluetooth: hidp: make sure input buffers are big enough · a4b1b587
    David Herrmann authored
    
    
    HID core expects the input buffers to be at least of size 4096
    (HID_MAX_BUFFER_SIZE). Other sizes will result in buffer-overflows if an
    input-report is smaller than advertised. We could, like i2c, compute the
    biggest report-size instead of using HID_MAX_BUFFER_SIZE, but this will
    blow up if report-descriptors are changed after ->start() has been called.
    So lets be safe and just use the biggest buffer we have.
    
    Note that this adds an additional copy to the HIDP input path. If there is
    a way to make sure the skb-buf is big enough, we should use that instead.
    
    The best way would be to make hid-core honor the @size argument, though,
    that sounds easier than it is. So lets just fix the buffer-overflows for
    now and afterwards look for a faster way for all transport drivers.
    
    Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    a4b1b587