aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald Tessier <ronald.tessier@linux.intel.com>2012-05-03 15:20:00 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-05-09 10:21:52 -0700
commitdc2c6e385db3169b3a910b4a357f4eeaa264339c (patch)
tree668d8893d810e19182ff6787be6e20c0cfaeafe5
parentf67ea24a5d0ce38cc9d435e946090ce5f635d8f5 (diff)
downloadmmsd-dc2c6e385db3169b3a910b4a357f4eeaa264339c.tar.gz
service: Retrieve get_conversation() args
-rw-r--r--src/service.c23
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)