From 6977a261e34e1f9e6c6beda1e31cccd70493ccae Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Tue, 1 Jul 2014 01:55:09 -0700 Subject: [PATCH] PIM: fix invalid call to folks_note_field_details_new folks_note_field_details_new() takes an additional uid parameter. Passing NULL is okay, but SyncEvolution wasn't doing that due to an incorrect function type cast. Found by valgrind only after a valgrind and tool chain update. Probably we passed a valid value accidentally before. Fixed by using a wrapper function. Ideally the function typecast should get replaced entirely with just casting the returned pointer. --- src/dbus/server/pim/individual-traits.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dbus/server/pim/individual-traits.cpp b/src/dbus/server/pim/individual-traits.cpp index baf42ffc..03e558a0 100644 --- a/src/dbus/server/pim/individual-traits.cpp +++ b/src/dbus/server/pim/individual-traits.cpp @@ -559,6 +559,8 @@ static void DBus2Addr(GDBusCXX::ExtractArgs &context, new GValueObjectCXX(set.get())); } +static FolksAbstractFieldDetails *my_folks_note_field_details_new_wrapper(const gchar *value, GeeMultiMap *parameters) { return FOLKS_ABSTRACT_FIELD_DETAILS(folks_note_field_details_new(value, parameters, NULL)); } + void DBus2PersonaDetails(GDBusCXX::ExtractArgs &context, GDBusCXX::reader_type &iter, PersonaDetails &details) @@ -647,7 +649,7 @@ void DBus2PersonaDetails(GDBusCXX::ExtractArgs &context, DBus2SimpleAbstractField(context, valueIter, details, FOLKS_TYPE_NOTE_FIELD_DETAILS, FOLKS_PERSONA_DETAIL_NOTES, - reinterpret_cast(folks_note_field_details_new)); + my_folks_note_field_details_new_wrapper); } else if (key == CONTACT_HASH_ROLES) { DBus2Role(context, valueIter, details); } else if (key == CONTACT_HASH_GROUPS) {