Selaa lähdekoodia

Bluetooth: Return EOPNOTSUPP for HCISETRAW ioctl command

The HCISETRAW ioctl command is not really useful. To utilize raw and
direct access to the HCI controller, the HCI User Channel feature has
been introduced. Return EOPNOTSUPP to indicate missing support for
this command.

For legacy reasons hcidump used to use HCISETRAW for permission check
to return proper error codes to users. To keep backwards compability
return EPERM in case the caller does not have CAP_NET_ADMIN capability.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Marcel Holtmann 11 vuotta sitten
vanhempi
commit
db5966816c
1 muutettua tiedostoa jossa 1 lisäystä ja 10 poistoa
  1. 1 10
      net/bluetooth/hci_sock.c

+ 1 - 10
net/bluetooth/hci_sock.c

@@ -524,16 +524,7 @@ static int hci_sock_bound_ioctl(struct sock *sk, unsigned int cmd,
 	case HCISETRAW:
 	case HCISETRAW:
 		if (!capable(CAP_NET_ADMIN))
 		if (!capable(CAP_NET_ADMIN))
 			return -EPERM;
 			return -EPERM;
-
-		if (test_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks))
-			return -EPERM;
-
-		if (arg)
-			set_bit(HCI_RAW, &hdev->flags);
-		else
-			clear_bit(HCI_RAW, &hdev->flags);
-
-		return 0;
+		return -EOPNOTSUPP;
 
 
 	case HCIGETCONNINFO:
 	case HCIGETCONNINFO:
 		return hci_get_conn_info(hdev, (void __user *) arg);
 		return hci_get_conn_info(hdev, (void __user *) arg);