summaryrefslogtreecommitdiffstats
path: root/sys/netgraph
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2004-01-26 15:19:43 +0000
committerharti <harti@FreeBSD.org>2004-01-26 15:19:43 +0000
commit5e802bbf2a5a4335c01550543e9f2a8c78e482b5 (patch)
tree8b910dedcfe822461bb34ffdc3e6cab9556e2ad2 /sys/netgraph
parent3a15ac7b11b935e1782804d428a4147f3f5fec27 (diff)
downloadFreeBSD-src-5e802bbf2a5a4335c01550543e9f2a8c78e482b5.zip
FreeBSD-src-5e802bbf2a5a4335c01550543e9f2a8c78e482b5.tar.gz
Replace deprecated NG_NODELEN with the new NG_NODESIZ. There is one
problem here still to be solved: the sockaddr_hci has still a 16 byte field for the node name. The code currently does not correctly use the length field in the sockaddr to handle the address length, so node names get truncated to 15 characters when put into a sockaddr_hci.
Diffstat (limited to 'sys/netgraph')
-rw-r--r--sys/netgraph/bluetooth/drivers/h4/ng_h4.c4
-rw-r--r--sys/netgraph/bluetooth/include/ng_btsocket.h7
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c2
3 files changed, 9 insertions, 4 deletions
diff --git a/sys/netgraph/bluetooth/drivers/h4/ng_h4.c b/sys/netgraph/bluetooth/drivers/h4/ng_h4.c
index 971079f..8ea68ed 100644
--- a/sys/netgraph/bluetooth/drivers/h4/ng_h4.c
+++ b/sys/netgraph/bluetooth/drivers/h4/ng_h4.c
@@ -150,7 +150,7 @@ static int ng_h4_node = 0;
static int
ng_h4_open(dev_t dev, struct tty *tp)
{
- char name[NG_NODELEN + 1];
+ char name[NG_NODESIZ];
ng_h4_info_p sc = NULL;
int s, error;
@@ -733,7 +733,7 @@ static int
ng_h4_shutdown(node_p node)
{
ng_h4_info_p sc = (ng_h4_info_p) NG_NODE_PRIVATE(node);
- char name[NG_NODELEN + 1];
+ char name[NG_NODESIZ];
/* Let old node go */
NG_NODE_SET_PRIVATE(node, NULL);
diff --git a/sys/netgraph/bluetooth/include/ng_btsocket.h b/sys/netgraph/bluetooth/include/ng_btsocket.h
index 6bdc607..1e351d0 100644
--- a/sys/netgraph/bluetooth/include/ng_btsocket.h
+++ b/sys/netgraph/bluetooth/include/ng_btsocket.h
@@ -50,12 +50,17 @@
/*
* XXX FIXME: probably does not belong here
* Bluetooth version of struct sockaddr for raw HCI sockets
+ *
+ * XXX: sizeof(hci_node) was NG_NODELEN + 1, but NG_NODESIZ (the equivalent
+ * of NG_NODELEN + 1) has been bumped to 32. The code currently
+ * truncates the node name to sizeof(hci_node), although it would be
+ * possible to correctly handle this by means of the hci_len field.
*/
struct sockaddr_hci {
u_char hci_len; /* total length */
u_char hci_family; /* address family */
- char hci_node[16]; /* address (size == NG_NODELEN + 1) */
+ char hci_node[16]; /* address */
};
/* Raw HCI socket options */
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
index a07b0b6..dd46231 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
@@ -1009,7 +1009,7 @@ ng_btsocket_hci_raw_control(struct socket *so, u_long cmd, caddr_t data,
struct ifnet *ifp, struct thread *td)
{
ng_btsocket_hci_raw_pcb_p pcb = so2hci_raw_pcb(so);
- char path[NG_NODELEN + 2];
+ char path[NG_NODESIZ + 1];
struct ng_mesg *msg = NULL;
int error = 0;
OpenPOWER on IntegriCloud