From 63c1ff65d124cd09032f64c7c0d83c782f9a4730 Mon Sep 17 00:00:00 2001 From: "Stephen J. Kiernan" Date: Tue, 6 Jun 2017 22:17:55 +0000 Subject: [PATCH] When the input parameter node is NULL, memory is allocated to it. To later free the memory, introduce a new variable lnode to track when this happens. Submitted by: Thomas Rix Reviewed by: emax Approved by: sjg (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D9878 --- usr.sbin/bluetooth/hccontrol/hccontrol.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bluetooth/hccontrol/hccontrol.c b/usr.sbin/bluetooth/hccontrol/hccontrol.c index b72854f9c09..46b23f71190 100644 --- a/usr.sbin/bluetooth/hccontrol/hccontrol.c +++ b/usr.sbin/bluetooth/hccontrol/hccontrol.c @@ -103,13 +103,14 @@ socket_open(char const *node) int s, mib[4], num; size_t size; struct nodeinfo *nodes; + char *lnode = NULL; num = find_hci_nodes(&nodes); if (num == 0) errx(7, "Could not find HCI nodes"); if (node == NULL) { - node = strdup(nodes[0].name); + node = lnode = strdup(nodes[0].name); if (num > 1) fprintf(stdout, "Using HCI node: %s\n", node); } @@ -130,6 +131,7 @@ socket_open(char const *node) if (connect(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) err(3, "Could not connect socket, node=%s", node); + free(lnode); memset(&filter, 0, sizeof(filter)); bit_set(filter.event_mask, NG_HCI_EVENT_COMMAND_COMPL - 1); bit_set(filter.event_mask, NG_HCI_EVENT_COMMAND_STATUS - 1);