From: Jie Jiang Date: Wed, 26 Aug 2020 06:37:42 +0000 (-0700) Subject: gatt: Accept empty array in parse_includes() X-Git-Tag: submit/tizen/20210606.232858~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=836f66f5c75d8535b850afdc0d77d09052dfc89c;p=platform%2Fupstream%2Fbluez.git gatt: Accept empty array in parse_includes() Currently parse_includes() will return false if the "Includes" property is an empty array. Empty array in the "Includes" property should be treated as valid. Signed-off-by: Anuj Jain Signed-off-by: Ayush Garg --- diff --git a/src/gatt-database.c b/src/gatt-database.c index 14c1ce87..a6b9dbcf 100644 --- a/src/gatt-database.c +++ b/src/gatt-database.c @@ -2408,6 +2408,7 @@ static bool parse_includes(GDBusProxy *proxy, struct external_service *service) DBusMessageIter iter; DBusMessageIter array; char *obj; + int type; /* Includes property is optional */ if (!g_dbus_proxy_get_property(proxy, "Includes", &iter)) @@ -2418,9 +2419,9 @@ static bool parse_includes(GDBusProxy *proxy, struct external_service *service) dbus_message_iter_recurse(&iter, &array); - do { - if (dbus_message_iter_get_arg_type(&array) != - DBUS_TYPE_OBJECT_PATH) + while ((type = dbus_message_iter_get_arg_type(&array)) + != DBUS_TYPE_INVALID) { + if (type != DBUS_TYPE_OBJECT_PATH) return false; dbus_message_iter_get_basic(&array, &obj); @@ -2428,11 +2429,12 @@ static bool parse_includes(GDBusProxy *proxy, struct external_service *service) if (!queue_push_tail(service->includes, obj)) { error("Failed to add Includes path in queue\n"); return false; - } incr_attr_count(service, 1); - } while (dbus_message_iter_next(&array)); + + dbus_message_iter_next(&array); + } return true; }