Re: [PATCH] manager: Do not recurse one more level for upnp basic type

2014-09-18 Thread Patrik Flykt
On Tue, 2014-09-16 at 08:48 -0400, Eduardo Abinader wrote:
> Just recurse one more level for the byte array that
> corresponds to bonjour data and not for the variant holding
> upnp data. This patch prevents a segmentation fault
> occuring by dereferencing null upnp data.

Applied, thanks!

Patrik

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


[PATCH] manager: Do not recurse one more level for upnp basic type

2014-09-16 Thread Eduardo Abinader
Just recurse one more level for the byte array that
corresponds to bonjour data and not for the variant holding
upnp data. This patch prevents a segmentation fault
occuring by dereferencing null upnp data.
---
 src/manager.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/manager.c b/src/manager.c
index e97921b..17fd7ee 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -399,19 +399,20 @@ static int parse_peers_service_specs(DBusMessageIter 
*array,
dbus_message_iter_next(&entry);
 
dbus_message_iter_recurse(&entry, &inter);
-   dbus_message_iter_recurse(&inter, &value);
 
if  (!g_strcmp0(key, "BonjourResponse")) {
+   dbus_message_iter_recurse(&inter, &value);
dbus_message_iter_get_fixed_array(&value,
spec, spec_len);
} else if (!g_strcmp0(key, "BonjourQuery")) {
+   dbus_message_iter_recurse(&inter, &value);
dbus_message_iter_get_fixed_array(&value,
query, query_len);
} else if (!g_strcmp0(key, "UpnpService")) {
-   dbus_message_iter_get_basic(&value, spec);
+   dbus_message_iter_get_basic(&inter, spec);
*spec_len = strlen((const char *)*spec)+1;
} else if (!g_strcmp0(key, "UpnpVersion")) {
-   dbus_message_iter_get_basic(&value, version);
+   dbus_message_iter_get_basic(&inter, version);
} else
return -EINVAL;
 
-- 
1.9.1

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