--- src/service.c | 55 +++++++++++++++++++------------------------------------ 1 files changed, 19 insertions(+), 36 deletions(-)
diff --git a/src/service.c b/src/service.c index 5fda8a1..25a4fc4 100644 --- a/src/service.c +++ b/src/service.c @@ -733,30 +733,16 @@ static DBusMessage *send_message(DBusConnection *conn, } msg->transaction_id = create_transaction_id(); - if (msg->transaction_id == NULL) { - release_attachement_data(msg->attachments); - mms_message_free(msg); - - return __mms_error_trans_failure(dbus_msg); - } + if (msg->transaction_id == NULL) + goto release_msg; request = create_request(MMS_REQUEST_TYPE_POST, result_request_send_conf, NULL, service, msg); - if (request == NULL) { - release_attachement_data(msg->attachments); - mms_message_free(msg); - - return __mms_error_trans_failure(dbus_msg); - } - - if (mms_message_encode(msg, request->fd) == FALSE) { - release_attachement_data(msg->attachments); - mms_message_free(msg); - - mms_request_destroy(request); + if (request == NULL) + goto release_msg; - return __mms_error_trans_failure(dbus_msg); - } + if (mms_message_encode(msg, request->fd) == FALSE) + goto release_request; close(request->fd); @@ -766,27 +752,15 @@ static DBusMessage *send_message(DBusConnection *conn, request->data_path)); meta = mms_store_meta_open(service->identity, msg->uuid); - if (meta == NULL) { - release_attachement_data(msg->attachments); - mms_message_free(msg); - - mms_request_destroy(request); - - return __mms_error_trans_failure(dbus_msg); - } + if (meta == NULL) + goto release_request; g_key_file_set_string(meta, "info", "state", "draft"); mms_store_meta_close(service->identity, msg->uuid, meta, TRUE); - if (mms_message_register(service, msg) < 0) { - release_attachement_data(msg->attachments); - mms_message_free(msg); - - mms_request_destroy(request); - - return __mms_error_trans_failure(dbus_msg); - } + if (mms_message_register(service, msg) < 0) + goto release_request; emit_message_added(service, msg); @@ -811,6 +785,15 @@ static DBusMessage *send_message(DBusConnection *conn, &msg->path); return reply; + +release_request: + mms_request_destroy(request); + +release_msg: + release_attachement_data(msg->attachments); + mms_message_free(msg); + + return __mms_error_trans_failure(dbus_msg); } static GDBusMethodTable service_methods[] = { -- 1.7.4.4 _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono