lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Fri, 9 Apr 2021 16:14:09 +0200
From:   Marcel Holtmann <marcel@...tmann.org>
To:     Yu Liu <yudiliu@...gle.com>
Cc:     linux-bluetooth <linux-bluetooth@...r.kernel.org>,
        CrosBT Upstreaming <chromeos-bluetooth-upstreaming@...omium.org>,
        Miao-chen Chou <mcchou@...omium.org>,
        Alain Michaud <alainm@...omium.org>,
        "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        Johan Hedberg <johan.hedberg@...il.com>,
        Luiz Augusto von Dentz <luiz.dentz@...il.com>,
        linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH v1] Bluetooth: Return whether a connection is outbound

Hi Yu,

> When an MGMT_EV_DEVICE_CONNECTED event is reported back to the user
> space we will set the flags to tell if the established connection is
> outbound or not. This is useful for the user space to log better metrics
> and error messages.
> 
> Reviewed-by: Miao-chen Chou <mcchou@...omium.org>
> Reviewed-by: Alain Michaud <alainm@...omium.org>
> Signed-off-by: Yu Liu <yudiliu@...gle.com>
> ---
> 
> Changes in v1:
> - Initial change
> 
> include/net/bluetooth/mgmt.h | 2 ++
> net/bluetooth/mgmt.c         | 5 +++++
> 2 files changed, 7 insertions(+)
> 
> diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
> index a7cffb069565..7cc724386b00 100644
> --- a/include/net/bluetooth/mgmt.h
> +++ b/include/net/bluetooth/mgmt.h
> @@ -885,6 +885,8 @@ struct mgmt_ev_new_long_term_key {
> 	struct mgmt_ltk_info key;
> } __packed;
> 
> +#define MGMT_DEV_CONN_INITIATED_CONNECTION 0x08
> +

I would just add this to MGMT_DEV_FOUND_INITIATED_CONN 0x08. And yes, I realize that this is a bit weird, but then all values are in one place.

> #define MGMT_EV_DEVICE_CONNECTED	0x000B
> struct mgmt_ev_device_connected {
> 	struct mgmt_addr_info addr;
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index 09e099c419f2..77213e67e8e4 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -8774,6 +8774,11 @@ void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
> 	bacpy(&ev->addr.bdaddr, &conn->dst);
> 	ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type);

So the prototype of mgmt_device_connected needs to be changed to remove the flags parameter. It is not used at all.

> 
> +	if (conn->out)
> +		flags |= MGMT_DEV_CONN_INITIATED_CONNECTION;
> +	else
> +		flags &= ~MGMT_DEV_CONN_INITIATED_CONNECTION;
> +

And then this should be just this:

	if (conn->out)
		flags |= MGMT_DEV_CONN_INITIATED_CONNECTION;

> 	ev->flags = __cpu_to_le32(flags);
> 
> 	/* We must ensure that the EIR Data fields are ordered and

Regards

Marcel

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ