2015-07-27 09:36:39

by Anchit Narang

[permalink] [raw]
Subject: [PATCH] tools/hciconfig:Fixed Memory Leak

Freed memory allocated to structure hci_dev_list_req to avoid memory leak
---
tools/hciconfig.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/tools/hciconfig.c b/tools/hciconfig.c
index 6397e71..0738b53 100644
--- a/tools/hciconfig.c
+++ b/tools/hciconfig.c
@@ -69,6 +69,10 @@ static void print_dev_list(int ctl, int flags)

if (ioctl(ctl, HCIGETDEVLIST, (void *) dl) < 0) {
perror("Can't get device list");
+
+ if (dl)
+ free(dl);
+
exit(1);
}

@@ -78,6 +82,9 @@ static void print_dev_list(int ctl, int flags)
continue;
print_dev_info(ctl, &di);
}
+
+ if (dl)
+ free(dl);
}

static void print_pkt_type(struct hci_dev_info *di)
--
1.7.9.5



2015-07-27 10:07:30

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH] tools/hciconfig:Fixed Memory Leak

Hi Anchit,

On Monday 27 of July 2015 15:06:39 Anchit Narang wrote:
> Freed memory allocated to structure hci_dev_list_req to avoid memory leak
> ---
> tools/hciconfig.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/tools/hciconfig.c b/tools/hciconfig.c
> index 6397e71..0738b53 100644
> --- a/tools/hciconfig.c
> +++ b/tools/hciconfig.c
> @@ -69,6 +69,10 @@ static void print_dev_list(int ctl, int flags)
>
> if (ioctl(ctl, HCIGETDEVLIST, (void *) dl) < 0) {
> perror("Can't get device list");
> +
> + if (dl)
> + free(dl);
> +

There is no need to check for non-NULL pointer as free() handles this
internally.

> exit(1);
> }
>
> @@ -78,6 +82,9 @@ static void print_dev_list(int ctl, int flags)
> continue;
> print_dev_info(ctl, &di);
> }
> +
> + if (dl)
> + free(dl);

Same here.

> }
>
> static void print_pkt_type(struct hci_dev_info *di)

--
BR
Szymon Janc