diff --git a/src/device.c b/src/device.c
index 73b2c44..1b3c1bb 100644
--- a/src/device.c
+++ b/src/device.c
static void browse_request_free(struct browse_req *req)
{
+ struct btd_device *device = req->device;
+
+ if (device->browse == req)
+ device->browse = NULL;
+
if (req->listener_id)
g_dbus_remove_watch(dbus_conn, req->listener_id);
if (req->msg)
attio_cleanup(device);
- device->browse = NULL;
browse_request_free(req);
}
if (!req)
return;
- dev->browse = NULL;
browse_request_complete(req, bdaddr_type, err);
}
adapter_connect_list_add(device->adapter, device);
}
- if (device->browse) {
+ if (device->browse)
browse_request_complete(device->browse,
device->bdaddr_type,
-ECONNABORTED);
- device->browse = NULL;
- }
err = -ECONNABORTED;
goto done;
BT_IO_OPT_INVALID);
if (device->att_io == NULL) {
- device->browse = NULL;
browse_request_free(req);
return -EIO;
}
&device->bdaddr, &uuid, browse_cb, req, NULL,
req->sdp_flags);
if (err < 0) {
- device->browse = NULL;
browse_request_free(req);
return err;
}