From 35929e60136107c8467bd04e49c4e8fc3422fa2e Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Thu, 16 Mar 2006 18:26:54 +0000 Subject: [PATCH] Properly convert L2CAP PSM values in sockaddr_l2cap to LE16 byte order. Noticed by: Iain Hibbert < plunky at rya-online dot net > MFC after: 3 days --- usr.sbin/bluetooth/bthidd/client.c | 2 +- usr.sbin/bluetooth/bthidd/server.c | 4 ++-- usr.sbin/bluetooth/sdpd/server.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/usr.sbin/bluetooth/bthidd/client.c b/usr.sbin/bluetooth/bthidd/client.c index cc611bdd3b7..252248d2e8d 100644 --- a/usr.sbin/bluetooth/bthidd/client.c +++ b/usr.sbin/bluetooth/bthidd/client.c @@ -231,7 +231,7 @@ client_socket(bdaddr_p bdaddr, int psm) } memcpy(&l2addr.l2cap_bdaddr, bdaddr, sizeof(l2addr.l2cap_bdaddr)); - l2addr.l2cap_psm = psm; + l2addr.l2cap_psm = htole16(psm); if (connect(s, (struct sockaddr *) &l2addr, sizeof(l2addr)) < 0 && errno != EINPROGRESS) { diff --git a/usr.sbin/bluetooth/bthidd/server.c b/usr.sbin/bluetooth/bthidd/server.c index ad2c82835f4..2f20715bac8 100644 --- a/usr.sbin/bluetooth/bthidd/server.c +++ b/usr.sbin/bluetooth/bthidd/server.c @@ -117,7 +117,7 @@ server_init(bthid_server_p srv) l2addr.l2cap_len = sizeof(l2addr); l2addr.l2cap_family = AF_BLUETOOTH; memcpy(&l2addr.l2cap_bdaddr, &srv->bdaddr, sizeof(l2addr.l2cap_bdaddr)); - l2addr.l2cap_psm = 0x11; + l2addr.l2cap_psm = htole16(0x11); if (bind(srv->ctrl, (struct sockaddr *) &l2addr, sizeof(l2addr)) < 0) { syslog(LOG_ERR, "Could not bind control L2CAP socket. " \ @@ -151,7 +151,7 @@ server_init(bthid_server_p srv) return (-1); } - l2addr.l2cap_psm = 0x13; + l2addr.l2cap_psm = htole16(0x13); if (bind(srv->intr, (struct sockaddr *) &l2addr, sizeof(l2addr)) < 0) { syslog(LOG_ERR, "Could not bind interrupt L2CAP socket. " \ diff --git a/usr.sbin/bluetooth/sdpd/server.c b/usr.sbin/bluetooth/sdpd/server.c index d07b54917fe..9528c623b0b 100644 --- a/usr.sbin/bluetooth/sdpd/server.c +++ b/usr.sbin/bluetooth/sdpd/server.c @@ -136,7 +136,7 @@ server_init(server_p srv, char const *control) l2.l2cap_len = sizeof(l2); l2.l2cap_family = AF_BLUETOOTH; memcpy(&l2.l2cap_bdaddr, NG_HCI_BDADDR_ANY, sizeof(l2.l2cap_bdaddr)); - l2.l2cap_psm = NG_L2CAP_PSM_SDP; + l2.l2cap_psm = htole16(NG_L2CAP_PSM_SDP); if (bind(l2sock, (struct sockaddr *) &l2, sizeof(l2)) < 0) { log_crit("Could not bind L2CAP socket. %s (%d)",