diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-19 07:06:48 -0500 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-19 07:22:11 -0500 |
commit | 48c7aba91f372251867d15efc9cf694ceee2de02 (patch) | |
tree | 457ae2383babe549913ee00c40370d978bd243ef | |
parent | 2da9c55c5a4a0b8f0348b7acd70d8b08a6ae4573 (diff) |
Bluetooth: Fix hci_connect error return values
The hci_connect function should either return a valid hci_conn pointer
or a ERR_PTR() but never NULL. This patch fixes the two places where
hci_conn_add failures would have caused a NULL return. The only reason
for failure with hci_conn_add is memory allocation so ENOMEM seems to be
a good choice here.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r-- | net/bluetooth/hci_conn.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 7ee6895c4b0c..8549d04e3313 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c | |||
@@ -551,7 +551,7 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 | |||
551 | if (!acl) { | 551 | if (!acl) { |
552 | acl = hci_conn_add(hdev, ACL_LINK, dst); | 552 | acl = hci_conn_add(hdev, ACL_LINK, dst); |
553 | if (!acl) | 553 | if (!acl) |
554 | return NULL; | 554 | return ERR_PTR(-ENOMEM); |
555 | } | 555 | } |
556 | 556 | ||
557 | hci_conn_hold(acl); | 557 | hci_conn_hold(acl); |
@@ -571,7 +571,7 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 | |||
571 | sco = hci_conn_add(hdev, type, dst); | 571 | sco = hci_conn_add(hdev, type, dst); |
572 | if (!sco) { | 572 | if (!sco) { |
573 | hci_conn_put(acl); | 573 | hci_conn_put(acl); |
574 | return NULL; | 574 | return ERR_PTR(-ENOMEM); |
575 | } | 575 | } |
576 | } | 576 | } |
577 | 577 | ||