Unverified Commit a9239f7f authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!6619 Bluetooth: Fix atomicity violation in {min,max}_key_size_set

parents 73103538 4107faab
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -994,10 +994,12 @@ static int min_key_size_set(void *data, u64 val)
{
	struct hci_dev *hdev = data;

	if (val > hdev->le_max_key_size || val < SMP_MIN_ENC_KEY_SIZE)
	hci_dev_lock(hdev);
	if (val > hdev->le_max_key_size || val < SMP_MIN_ENC_KEY_SIZE) {
		hci_dev_unlock(hdev);
		return -EINVAL;
	}

	hci_dev_lock(hdev);
	hdev->le_min_key_size = val;
	hci_dev_unlock(hdev);

@@ -1022,10 +1024,12 @@ static int max_key_size_set(void *data, u64 val)
{
	struct hci_dev *hdev = data;

	if (val > SMP_MAX_ENC_KEY_SIZE || val < hdev->le_min_key_size)
	hci_dev_lock(hdev);
	if (val > SMP_MAX_ENC_KEY_SIZE || val < hdev->le_min_key_size) {
		hci_dev_unlock(hdev);
		return -EINVAL;
	}

	hci_dev_lock(hdev);
	hdev->le_max_key_size = val;
	hci_dev_unlock(hdev);