From 61a95eab27433d6f7843eebf93ea89401b54e912 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 23 Dec 2012 11:03:33 -0800 Subject: [PATCH] core: Fix argument check for register profile method The check for the options parameter needs to be done properly, otherwise an empty dictionary is not declared as valid. --- src/profile.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/profile.c b/src/profile.c index c838c1dc1..bf165f2a5 100644 --- a/src/profile.c +++ b/src/profile.c @@ -2146,6 +2146,8 @@ static DBusMessage *register_profile(DBusConnection *conn, sender = dbus_message_get_sender(msg); + DBG("sender %s", sender); + dbus_message_iter_init(msg, &args); dbus_message_iter_get_basic(&args, &path); @@ -2158,10 +2160,11 @@ static DBusMessage *register_profile(DBusConnection *conn, dbus_message_iter_get_basic(&args, &uuid); dbus_message_iter_next(&args); - dbus_message_iter_recurse(&args, &opts); - if (dbus_message_iter_get_arg_type(&opts) != DBUS_TYPE_DICT_ENTRY) + if (dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_ARRAY) return btd_error_invalid_args(msg); + dbus_message_iter_recurse(&args, &opts); + ext = create_ext(sender, path, uuid, &opts); if (!ext) return btd_error_invalid_args(msg); @@ -2180,6 +2183,8 @@ static DBusMessage *unregister_profile(DBusConnection *conn, sender = dbus_message_get_sender(msg); + DBG("sender %s", sender); + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID)) return btd_error_invalid_args(msg); -- 2.47.3