Bluetooth: vhci: Fix info leak in force_devcd_write()
authorDan Carpenter <error27@gmail.com>
Thu, 6 Apr 2023 08:55:17 +0000 (11:55 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 24 Apr 2023 05:02:57 +0000 (22:02 -0700)
commite4eea890369c00dd58d97b1c066dc2bddf0da2c7
tree06001e06d7ba7fd6d036b529714ae9429d50cd1a
parent0811ff480978a2122f0465cb8682d9f7a2f6a169
Bluetooth: vhci: Fix info leak in force_devcd_write()

There are a number of bugs here:

1) If "count" is less than sizeof(dump_data.data) then it copies
   uninitialized data.
2) If simple_write_to_buffer() returns -EFAULT then we run into a
   problem "ret < count" comparison.  "count" is an unsigned long so the
   comparison is type promoted to unsigned long and the negative returns
   become high positive values.  That also results in copying
   uninitialized data.
3) If "*ppos" is non-zero then the first part of the dump_data
   buffer is uninitialized.  Using copy_from_user() instead of
   simple_write_to_buffer() is more appropriate here.

Fixes: d5d5df6da0aa ("Bluetooth: Add vhci devcoredump support")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
drivers/bluetooth/hci_vhci.c