advertising: Treat empty LocalName the same as omitting it
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 6 May 2022 23:05:14 +0000 (16:05 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:54 +0000 (14:55 +0530)
This treats empty LocalName ("") the same as omitting it so not name is
set in the advertising data since some D-Bus binding seems to have
problems to omit properties at runtime.

Fixes: https://github.com/bluez/bluez/issues/337
Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
src/advertising.c

index 0e359c6..b0e46d1 100644 (file)
@@ -528,7 +528,15 @@ static bool parse_local_name(DBusMessageIter *iter,
        dbus_message_iter_get_basic(iter, &name);
 
        free(client->name);
-       client->name = strdup(name);
+
+       /* Treat empty string the same as omitting since there is no point on
+        * adding a empty name as AD data as it just take space that could be
+        * used for something else.
+        */
+       if (name[0] != '\0')
+               client->name = strdup(name);
+       else
+               client->name = NULL;
 
        return true;
 }