From eb31da79f1b9e631009187444708ceda4b598c81 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Wed, 9 Jan 2013 15:29:35 +0200 Subject: [PATCH] --- yaml --- r: 352237 b: refs/heads/master c: 575b3a02e20a10bb8110378ef363a8a174018680 h: refs/heads/master i: 352235: 264864dc16f84b736984b2bc71862ee00ca1936f v: v3 --- [refs] | 2 +- trunk/net/bluetooth/mgmt.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 07283e556f45..90cda6a0be18 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 715a5bf2db4df4a7df64f420d21fb49ba146b3fa +refs/heads/master: 575b3a02e20a10bb8110378ef363a8a174018680 diff --git a/trunk/net/bluetooth/mgmt.c b/trunk/net/bluetooth/mgmt.c index 1dd41d48eb66..f3fec4264dcf 100644 --- a/trunk/net/bluetooth/mgmt.c +++ b/trunk/net/bluetooth/mgmt.c @@ -1430,6 +1430,12 @@ static int set_dev_class(struct sock *sk, struct hci_dev *hdev, void *data, goto unlock; } + if ((cp->minor & 0x03) != 0 || (cp->major & 0xe0) != 0) { + err = cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, + MGMT_STATUS_INVALID_PARAMS); + goto unlock; + } + hdev->major_class = cp->major; hdev->minor_class = cp->minor;