Diff between 030cb8fbe41707e6db230ae5eb7fa9eae66db11a and d356a6242be9a1aba2cca871b79618e3b28a5ec2

Changed Files

File Additions Deletions Status
src/advertising.c +8 -0 modified

Full Patch

diff --git a/src/advertising.c b/src/advertising.c
index ef84e45..e7840bf 100644
--- a/src/advertising.c
+++ b/src/advertising.c
@@ -298,6 +298,10 @@ static bool parse_advertising_manufacturer_data(GDBusProxy *proxy,
 		dbus_message_iter_get_basic(&entry, &manuf_id);
 
 		dbus_message_iter_next(&entry);
+
+		if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_VARIANT)
+			goto fail;
+
 		dbus_message_iter_recurse(&entry, &value);
 
 		if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_ARRAY)
@@ -356,6 +360,10 @@ static bool parse_advertising_service_data(GDBusProxy *proxy,
 			goto fail;
 
 		dbus_message_iter_next(&entry);
+
+		if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_VARIANT)
+			goto fail;
+
 		dbus_message_iter_recurse(&entry, &value);
 
 		if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_ARRAY)