Send connman mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.01.org/mailman/listinfo/connman
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."
Today's Topics:
1. [PATCH 0/4] Fixed Several Memory Leaks (Saurav Babu)
2. [PATCH 1/4] gdbus: Fix Memory Leak (Saurav Babu)
3. [PATCH 2/4] gweb: Properly handle memory failure scenarios
(Saurav Babu)
4. [PATCH 3/4] dhcp: Fixed Memory Leak (Saurav Babu)
5. [PATCH 4/4] service: Fixed Memory Leak (Saurav Babu)
6. Re: [PATCH 4/4] service: Fixed Memory Leak (Jukka Rissanen)
7. [PATCHv2 4/4] service: Fixed Memory Leak (Saurav Babu)
----------------------------------------------------------------------
Message: 1
Date: Thu, 26 Nov 2015 14:52:46 +0530
From: Saurav Babu <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCH 0/4] Fixed Several Memory Leaks
Message-ID:
<[email protected]>
Saurav Babu (4):
gdbus: Fix Memory Leak
gweb: Properly handle memory failure scenarios
dhcp: Fixed Memory Leak
service: Fixed Memory Leak
gdbus/watch.c | 6 ++++++
gweb/gweb.c | 9 ++++++++-
src/dhcp.c | 6 +++++-
src/service.c | 7 ++++++-
4 files changed, 25 insertions(+), 3 deletions(-)
--
1.9.1
------------------------------
Message: 2
Date: Thu, 26 Nov 2015 14:52:47 +0530
From: Saurav Babu <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCH 1/4] gdbus: Fix Memory Leak
Message-ID:
<[email protected]>
Members of data are allocated memory but not freed only data is freed.
This patch frees other members of data also.
---
gdbus/watch.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gdbus/watch.c b/gdbus/watch.c
index b60f650..8ab9aae 100644
--- a/gdbus/watch.c
+++ b/gdbus/watch.c
@@ -248,6 +248,12 @@ proceed:
data->argument = g_strdup(argument);
if (!add_match(data, filter)) {
+ g_free(data->name);
+ g_free(data->owner);
+ g_free(data->path);
+ g_free(data->interface);
+ g_free(data->member);
+ g_free(data->argument);
g_free(data);
return NULL;
}
--
1.9.1
------------------------------
Message: 3
Date: Thu, 26 Nov 2015 14:52:48 +0530
From: Saurav Babu <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCH 2/4] gweb: Properly handle memory failure scenarios
Message-ID:
<[email protected]>
---
gweb/gweb.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/gweb/gweb.c b/gweb/gweb.c
index 5f18a0e..f6e819f 100644
--- a/gweb/gweb.c
+++ b/gweb/gweb.c
@@ -1472,13 +1472,20 @@ GWebParser *g_web_parser_new(const char *begin, const
char *end,
parser->ref_count = 1;
parser->begin_token = g_strdup(begin);
- parser->end_token = g_strdup(end);
if (!parser->begin_token) {
g_free(parser);
return NULL;
}
+ parser->end_token = g_strdup(end);
+
+ if (!parser->end_token) {
+ g_free(parser->begin_token);
+ g_free(parser);
+ return NULL;
+ }
+
parser->func = func;
parser->user_data = user_data;
--
1.9.1
------------------------------
Message: 4
Date: Thu, 26 Nov 2015 14:52:49 +0530
From: Saurav Babu <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCH 3/4] dhcp: Fixed Memory Leak
Message-ID:
<[email protected]>
Memory allocated should be feed when apply_lease_available_on_network()
fails
---
src/dhcp.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/dhcp.c b/src/dhcp.c
index 9a74362..371983b 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -461,8 +461,12 @@ static void lease_available_cb(GDHCPClient *dhcp_client,
gpointer user_data)
__connman_ipconfig_set_gateway(dhcp->ipconfig, gateway);
}
- if (!apply_lease_available_on_network(dhcp_client, dhcp))
+ if (!apply_lease_available_on_network(dhcp_client, dhcp)) {
+ g_free(address);
+ g_free(netmask);
+ g_free(gateway);
return;
+ }
if (ip_change)
dhcp_valid(dhcp);
--
1.9.1
------------------------------
Message: 5
Date: Thu, 26 Nov 2015 14:52:50 +0530
From: Saurav Babu <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCH 4/4] service: Fixed Memory Leak
Message-ID:
<[email protected]>
When memory allocation fails for any value of j for servers[j] then all
the memory allocated for 0 to j-1 should be freed alongwith servers
---
src/service.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/service.c b/src/service.c
index e3317dd..93c417b 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2732,8 +2732,13 @@ int __connman_service_timeserver_remove(struct
connman_service *service,
for (i = 0, j = 0; i < len; i++) {
if (g_strcmp0(service->timeservers[i], timeserver) != 0) {
servers[j] = g_strdup(service->timeservers[i]);
- if (!servers[j])
+ if (!servers[j]) {
+ int k;
+ for(k = 0; k < j; k++)
+ g_free(servers[k]);
+ g_free(servers);
return -ENOMEM;
+ }
j++;
}
}
--
1.9.1
------------------------------
Message: 6
Date: Thu, 26 Nov 2015 12:06:40 +0200
From: Jukka Rissanen <[email protected]>
To: Saurav Babu <[email protected]>, [email protected]
Cc: [email protected]
Subject: Re: [PATCH 4/4] service: Fixed Memory Leak
Message-ID: <[email protected]>
Content-Type: text/plain; charset="UTF-8"
Hi,
On Thu, 2015-11-26 at 14:52 +0530, Saurav Babu wrote:
> When memory allocation fails for any value of j for servers[j] then
> all
> the memory allocated for 0 to j-1 should be freed alongwith servers
> ---
> ?src/service.c | 7 ++++++-
> ?1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/service.c b/src/service.c
> index e3317dd..93c417b 100644
> --- a/src/service.c
> +++ b/src/service.c
> @@ -2732,8 +2732,13 @@ int __connman_service_timeserver_remove(struct
> connman_service *service,
> ? for (i = 0, j = 0; i < len; i++) {
> ? if (g_strcmp0(service->timeservers[i], timeserver)
> != 0) {
> ? servers[j] = g_strdup(service-
> >timeservers[i]);
> - if (!servers[j])
> + if (!servers[j]) {
> + int k;
> + for(k = 0; k < j; k++)
> + g_free(servers[k]);
The above loop could probably be optimized to
while (j >= 0)
g_free(servers[--j]);
that way you would not need to use additional variable.
> + g_free(servers);
> ? return -ENOMEM;
> + }
> ? j++;
> ? }
> ? }
Cheers,
Jukka
------------------------------
Message: 7
Date: Thu, 26 Nov 2015 16:21:20 +0530
From: Saurav Babu <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCHv2 4/4] service: Fixed Memory Leak
Message-ID:
<[email protected]>
When memory allocation fails for any value of j for servers[j] then all
the memory allocated for 0 to j-1 should be freed alongwith servers
---
src/service.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/service.c b/src/service.c
index e3317dd..1aced50 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2732,8 +2732,12 @@ int __connman_service_timeserver_remove(struct
connman_service *service,
for (i = 0, j = 0; i < len; i++) {
if (g_strcmp0(service->timeservers[i], timeserver) != 0) {
servers[j] = g_strdup(service->timeservers[i]);
- if (!servers[j])
+ if (!servers[j]) {
+ while (j >= 0)
+ g_free(servers[--j]);
+ g_free(servers);
return -ENOMEM;
+ }
j++;
}
}
--
1.9.1
------------------------------
Subject: Digest Footer
_______________________________________________
connman mailing list
[email protected]
https://lists.01.org/mailman/listinfo/connman
------------------------------
End of connman Digest, Vol 1, Issue 7
*************************************