Re: [PATCH] supplicant.c: Fixed Potential Crash issue

2015-10-08 Thread Patrik Flykt

Hi,

On Mon, 2015-10-05 at 14:31 +0530, Maneesh Jain wrote:
> Signed-off-by: Maneesh Jain 
> ---
>  gsupplicant/supplicant.c | 6 ++
>  1 files changed, 6 insertions(+)
> 
> diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
> index 98ca94b..9506f02
> --- a/gsupplicant/supplicant.c
> +++ b/gsupplicant/supplicant.c
> @@ -2804,6 +2804,9 @@ static void signal_peer_found(const char *path, 
> DBusMessageIter *iter)
>   g_hash_table_replace(peer_mapping, peer->path, interface);
>  
>   property_data = dbus_malloc0(sizeof(struct peer_property_data));
> + if (!property_data)
> + return;
> +

NACK. With the above code there will be a peer object without any of its
associated data. Not a good thing. Please do the needed allocations
first, and if either fail, don't add a new peer.
 
>   property_data->peer = peer;
>  
>   dbus_message_iter_next(iter);
> @@ -2861,6 +2864,9 @@ static void signal_peer_changed(const char *path, 
> DBusMessageIter *iter)
>   }
>  
>   property_data = dbus_malloc0(sizeof(struct peer_property_data));
> + if (!property_data)
> + return;
> +

Same here. This time the peer is not updated, though.

>   property_data->peer = peer;
>  
>   supplicant_dbus_property_foreach(iter, peer_property, property_data);


Patrik

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


[PATCH] supplicant.c: Fixed Potential Crash issue

2015-10-05 Thread Maneesh Jain
Signed-off-by: Maneesh Jain 
---
 gsupplicant/supplicant.c | 6 ++
 1 files changed, 6 insertions(+)

diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 98ca94b..9506f02
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -2804,6 +2804,9 @@ static void signal_peer_found(const char *path, 
DBusMessageIter *iter)
g_hash_table_replace(peer_mapping, peer->path, interface);
 
property_data = dbus_malloc0(sizeof(struct peer_property_data));
+   if (!property_data)
+   return;
+
property_data->peer = peer;
 
dbus_message_iter_next(iter);
@@ -2861,6 +2864,9 @@ static void signal_peer_changed(const char *path, 
DBusMessageIter *iter)
}
 
property_data = dbus_malloc0(sizeof(struct peer_property_data));
+   if (!property_data)
+   return;
+
property_data->peer = peer;
 
supplicant_dbus_property_foreach(iter, peer_property, property_data);
-- 
1.9.1

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman