2014-10-02 14:31:37

by Andrei Emeltchenko

[permalink] [raw]
Subject: [PATCH] android/core: Fix memory leak in parse_system_id()

From: Andrei Emeltchenko <[email protected]>

get_prop() allocates memory which needs to be freed.
---
android/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/android/main.c b/android/main.c
index 4f3a6bf..703b3b6 100644
--- a/android/main.c
+++ b/android/main.c
@@ -382,9 +382,11 @@ static void parse_system_id(uint16_t len, const uint8_t *val)

res = strtoull(id, NULL, 16);
if (res == ULLONG_MAX && errno == ERANGE)
- return;
+ goto done;

config_system_id = res;
+done:
+ free(id);
}

static void configuration(const void *buf, uint16_t len)
--
1.9.1



2014-10-02 14:47:32

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH] android/core: Fix memory leak in parse_system_id()

Hi Andrei,

On Thursday 02 of October 2014 17:31:37 Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <[email protected]>
>
> get_prop() allocates memory which needs to be freed.
> ---
> android/main.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/android/main.c b/android/main.c
> index 4f3a6bf..703b3b6 100644
> --- a/android/main.c
> +++ b/android/main.c
> @@ -382,9 +382,11 @@ static void parse_system_id(uint16_t len, const uint8_t *val)
>
> res = strtoull(id, NULL, 16);
> if (res == ULLONG_MAX && errno == ERANGE)
> - return;
> + goto done;
>
> config_system_id = res;
> +done:
> + free(id);
> }
>
> static void configuration(const void *buf, uint16_t len)
>

Patch applied, thanks.

--
Best regards,
Szymon Janc