advertising: parse_secondary: check for NULL iterator
authorChristian Eggers <ceggers@arri.de>
Fri, 23 Sep 2022 14:55:56 +0000 (16:55 +0200)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:55 +0000 (14:55 +0530)
The passed iterator can be NULL as in
gdbus/client.c::properties_changed():
...
   proxy->prop_func(..., ..., iter=NULL, ...)
   +--src/advertising.c::properties_changed(..., ..., iter, ...);
      +--parse_secondary(iter, ...);
...

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
src/advertising.c

index 0f7593a..904109d 100644 (file)
@@ -1042,6 +1042,12 @@ static bool parse_secondary(DBusMessageIter *iter,
        const char *str;
        struct adv_secondary *sec;
 
+       if (!iter) {
+               /* Reset secondary channels */
+               client->flags &= ~MGMT_ADV_FLAG_SEC_MASK;
+               return true;
+       }
+
        if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_STRING)
                return false;