diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2012-02-28 01:57:59 -0500 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-29 09:19:37 -0500 |
commit | 89bb46d02046b59c1de3d2e92680f3a1062750d0 (patch) | |
tree | dd56173e9835912f91c86e4837b1e9df9c5b30dd | |
parent | 3379013bcfceb3c0365a3cf03543d6c67b84fc34 (diff) |
Bluetooth: change min_t() cast in hci_reassembly()
"count" is type int so the cast to __u16 truncates the high bits away
and triggers a Smatch static checker warning. It looks like a high
value of count could cause a forever loop, but I didn't follow it
through to see if count is capped somewhere.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
-rw-r--r-- | net/bluetooth/hci_core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index e6cbb8a1f47d..db484a8e7364 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -1966,7 +1966,7 @@ static int hci_reassembly(struct hci_dev *hdev, int type, void *data, | |||
1966 | 1966 | ||
1967 | while (count) { | 1967 | while (count) { |
1968 | scb = (void *) skb->cb; | 1968 | scb = (void *) skb->cb; |
1969 | len = min_t(__u16, scb->expect, count); | 1969 | len = min_t(uint, scb->expect, count); |
1970 | 1970 | ||
1971 | memcpy(skb_put(skb, len), data, len); | 1971 | memcpy(skb_put(skb, len), data, len); |
1972 | 1972 | ||