diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2006-10-05 13:59:31 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2006-10-05 13:59:31 +0000 |
commit | 7e67b8266268dde84711740bceb373c4c271f3eb (patch) | |
tree | 8b6efdc4a5f7d143fce4f4f24cbce1425ec7cb30 /hcid | |
parent | 2eda239bfc7bc3b09a89837db8babbedb5f3e68b (diff) |
added verification for hci_devid return value
Diffstat (limited to 'hcid')
-rw-r--r-- | hcid/dbus.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/hcid/dbus.c b/hcid/dbus.c index 7230d14e..689ce46f 100644 --- a/hcid/dbus.c +++ b/hcid/dbus.c @@ -763,10 +763,17 @@ void hcid_dbus_pending_pin_req_add(bdaddr_t *sba, bdaddr_t *dba) char path[MAX_PATH_LENGTH], addr[18]; struct adapter *adapter; struct pending_pin_info *info; + int id; ba2str(sba, addr); - snprintf(path, sizeof(path), "%s/hci%d", BASE_PATH, hci_devid(addr)); + id = hci_devid(addr); + if (id < 0) { + error("No matching device id for %s", addr); + return; + } + + snprintf(path, sizeof(path), "%s/hci%d", BASE_PATH, id); if (!dbus_connection_get_object_path_data(connection, path, (void *) &adapter)) { error("Getting %s path data failed!", path); @@ -790,10 +797,17 @@ void hcid_dbus_pending_pin_req_add(bdaddr_t *sba, bdaddr_t *dba) int hcid_dbus_request_pin(int dev, bdaddr_t *sba, struct hci_conn_info *ci) { char path[MAX_PATH_LENGTH], addr[18]; + int id; ba2str(sba, addr); - snprintf(path, sizeof(path), "%s/hci%d", BASE_PATH, hci_devid(addr)); + id = hci_devid(addr); + if (id < 0) { + error("No matching device id for %s", addr); + return -1; + } + + snprintf(path, sizeof(path), "%s/hci%d", BASE_PATH, id); return handle_passkey_request(connection, dev, path, sba, &ci->bdaddr); } |