diff options
author | Ronald Tessier <ronald.tessier@linux.intel.com> | 2012-05-03 15:20:00 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-05-09 10:21:52 -0700 |
commit | dc2c6e385db3169b3a910b4a357f4eeaa264339c (patch) | |
tree | 668d8893d810e19182ff6787be6e20c0cfaeafe5 | |
parent | f67ea24a5d0ce38cc9d435e946090ce5f635d8f5 (diff) | |
download | mmsd-dc2c6e385db3169b3a910b4a357f4eeaa264339c.tar.gz |
service: Retrieve get_conversation() args
-rw-r--r-- | src/service.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c index 689a4e1..a8e818a 100644 --- a/src/service.c +++ b/src/service.c @@ -703,6 +703,29 @@ static DBusMessage *get_conversation(DBusConnection *conn, { DBusMessage *reply; DBusMessageIter iter, array; + const char *number; + unsigned int count; + + if (dbus_message_iter_init(dbus_msg, &iter) == FALSE) + return __mms_error_invalid_args(dbus_msg); + + if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) + return __mms_error_invalid_args(dbus_msg); + + dbus_message_iter_get_basic(&iter, &number); + if (number[0] == '\0') + return __mms_error_invalid_args(dbus_msg); + + if (valid_number_format(number) == FALSE) + return __mms_error_invalid_args(dbus_msg); + + if (!dbus_message_iter_next(&iter)) + return __mms_error_invalid_args(dbus_msg); + + if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_UINT32) + return __mms_error_invalid_args(dbus_msg); + + dbus_message_iter_get_basic(&iter, &count); reply = dbus_message_new_method_return(dbus_msg); if (reply == NULL) |