mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 04:32:03 +00:00
Bluetooth: Always use l2cap_chan->psm for returning PSM to user space
The l2cap_chan->psm value is always set to a valid value for a connection oriented channel. The l2cap_chan->sport is used for tracking local PSM allocations but will not always have a proper value, such as with connected sockets derived from a listening socket. This patch fixes the sock_getname callback to always use chan->psm when returning address information. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
35364c99d2
commit
d7e5e76b6f
@ -373,13 +373,13 @@ static int l2cap_sock_getname(struct socket *sock, struct sockaddr *addr,
|
||||
addr->sa_family = AF_BLUETOOTH;
|
||||
*len = sizeof(struct sockaddr_l2);
|
||||
|
||||
la->l2_psm = chan->psm;
|
||||
|
||||
if (peer) {
|
||||
la->l2_psm = chan->psm;
|
||||
bacpy(&la->l2_bdaddr, &chan->dst);
|
||||
la->l2_cid = cpu_to_le16(chan->dcid);
|
||||
la->l2_bdaddr_type = chan->dst_type;
|
||||
} else {
|
||||
la->l2_psm = chan->sport;
|
||||
bacpy(&la->l2_bdaddr, &chan->src);
|
||||
la->l2_cid = cpu_to_le16(chan->scid);
|
||||
la->l2_bdaddr_type = chan->src_type;
|
||||
|
Loading…
Reference in New Issue
Block a user