[PATCH] tools: Fix memory leaks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Some printfs was using as parameter functions that return dinamic
allocated memory. Now, we free them!

Signed-off-by: Gustavo F. Padovan <gustavo@xxxxxxxxxxxxxxxxx>
---
 tools/hciconfig.c |   15 ++++++++++++---
 tools/hcitool.c   |    6 ++++--
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/tools/hciconfig.c b/tools/hciconfig.c
index 960f450..ca7394f 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 e24bde9..f1cffb6 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;
-- 
1.6.0.6

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux