config: return BadValue to caller if add/remove doesn't have parameters.
If message iterator cannot be created, the caller didn't supply any parameters. Return BadValue, instead of dying a horrible death while being stuck in an endless loop.
This commit is contained in:
parent
87495fc706
commit
0fcde83d94
|
@ -74,11 +74,12 @@ add_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
|
|||
int ret, err;
|
||||
DeviceIntPtr dev = NULL;
|
||||
|
||||
dbus_message_iter_init_append(reply, &reply_iter);
|
||||
|
||||
if (!dbus_message_iter_init(message, &iter)) {
|
||||
ErrorF("[config/dbus] couldn't initialise iterator\n");
|
||||
return BadAlloc;
|
||||
MALFORMED_MESSAGE();
|
||||
}
|
||||
dbus_message_iter_init_append(reply, &reply_iter);
|
||||
|
||||
options = xcalloc(sizeof(*options), 1);
|
||||
if (!options) {
|
||||
|
@ -200,11 +201,12 @@ remove_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
|
|||
DeviceIntPtr dev;
|
||||
DBusMessageIter iter, reply_iter;
|
||||
|
||||
dbus_message_iter_init_append(reply, &reply_iter);
|
||||
|
||||
if (!dbus_message_iter_init(message, &iter)) {
|
||||
ErrorF("[config] failed to init iterator\n");
|
||||
return BadAlloc;
|
||||
MALFORMED_MESSAGE();
|
||||
}
|
||||
dbus_message_iter_init_append(reply, &reply_iter);
|
||||
|
||||
if (!dbus_message_get_args(message, error, DBUS_TYPE_UINT32,
|
||||
&deviceid, DBUS_TYPE_INVALID)) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user