summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorGustavo F. Padovan <gustavo@las.ic.unicamp.br>2009-02-09 21:50:56 -0200
committerMarcel Holtmann <marcel@holtmann.org>2009-02-10 16:40:47 +0100
commit28faab63be1eb83bf26f394552f46bce1b1d4114 (patch)
tree607cf8157e643d9f45cce8365f831cc90673cc46 /tools
parent60cf1091c23bb36f45f56ab94b1904e61498f3c7 (diff)
Fix memory leaks in hciconfig and hcitool
Some printfs were using functions that return dynamic allocated memory as parameters.
Diffstat (limited to 'tools')
-rw-r--r--tools/hciconfig.c15
-rw-r--r--tools/hcitool.c6
2 files changed, 16 insertions, 5 deletions
diff --git a/tools/hciconfig.c b/tools/hciconfig.c
index 960f450b..a89aed13 100644
--- a/tools/hciconfig.c
+++ b/tools/hciconfig.c
@@ -85,7 +85,10 @@ static void print_dev_list(int ctl, int flags)
static void print_pkt_type(struct hci_dev_info *di)
{
- printf("\tPacket type: %s\n", hci_ptypetostr(di->pkt_type));
+ char *str;
+ str = hci_ptypetostr(di->pkt_type);
+ printf("\tPacket type: %s\n", str);
+ bt_free(str);
}
static void print_link_policy(struct hci_dev_info *di)
@@ -95,7 +98,10 @@ static void print_link_policy(struct hci_dev_info *di)
static void print_link_mode(struct hci_dev_info *di)
{
- printf("\tLink mode: %s\n", hci_lmtostr(di->link_mode));
+ char *str;
+ str = hci_lmtostr(di->link_mode);
+ printf("\tLink mode: %s\n", str);
+ bt_free(str);
}
static void print_dev_features(struct hci_dev_info *di, int format)
@@ -1586,10 +1592,13 @@ static void print_dev_hdr(struct hci_dev_info *di)
static void print_dev_info(int ctl, struct hci_dev_info *di)
{
struct hci_dev_stats *st = &di->stat;
+ char *str;
print_dev_hdr(di);
- printf("\t%s\n", hci_dflagstostr(di->flags) );
+ str = hci_dflagstostr(di->flags);
+ printf("\t%s\n", str);
+ bt_free(str);
printf("\tRX bytes:%d acl:%d sco:%d events:%d errors:%d\n",
st->byte_rx, st->acl_rx, st->sco_rx, st->evt_rx, st->err_rx);
diff --git a/tools/hcitool.c b/tools/hcitool.c
index e24bde97..faf4cb4f 100644
--- a/tools/hcitool.c
+++ b/tools/hcitool.c
@@ -102,11 +102,13 @@ static int conn_list(int s, int dev_id, long arg)
for (i = 0; i < cl->conn_num; i++, ci++) {
char addr[18];
+ char *str;
ba2str(&ci->bdaddr, addr);
+ str = hci_lmtostr(ci->link_mode);
printf("\t%s %s %s handle %d state %d lm %s\n",
ci->out ? "<" : ">", type2str(ci->type),
- addr, ci->handle, ci->state,
- hci_lmtostr(ci->link_mode));
+ addr, ci->handle, ci->state, str);
+ bt_free(str);
}
return 0;