[packages/openchange] - added covscan,samba-4.10-macros patches from Fedora - updated disable-mapiproxy patch (basing on F
qboosh
qboosh at pld-linux.org
Wed Apr 10 21:03:16 CEST 2019
commit f28b8ba49a90595347fb6a401e7dfb87b857e600
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Wed Apr 10 21:03:14 2019 +0200
- added covscan,samba-4.10-macros patches from Fedora
- updated disable-mapiproxy patch (basing on Fedora disable-server-tools-build patch)
- release 39 (for samba 4.10.2)
disable-mapiproxy.patch | 29 ++
openchange-covscan.patch | 675 +++++++++++++++++++++++++++++++++++++
openchange-samba-4.10-macros.patch | 159 +++++++++
openchange.spec | 17 +-
4 files changed, 872 insertions(+), 8 deletions(-)
---
diff --git a/openchange.spec b/openchange.spec
index 52581f3..e83e891 100644
--- a/openchange.spec
+++ b/openchange.spec
@@ -12,7 +12,7 @@ Summary: OpenChange - portable implementation of MS Exchange Server and Exchange
Summary(pl.UTF-8): OpenChange - przenośna implementacja serwera oraz protokołów MS Exchange
Name: openchange
Version: 2.3
-Release: 38
+Release: 39
License: GPL v3+
Group: Libraries
Source0: https://github.com/openchange/openchange/archive/%{name}-%{version}-%{cname}.tar.gz
@@ -23,6 +23,8 @@ Patch2: flex2.6.patch
Patch3: samba-4.2.patch
Patch4: fix-connection-args.patch
Patch5: samba-4.4.patch
+Patch6: %{name}-covscan.patch
+Patch7: %{name}-samba-4.10-macros.patch
URL: https://github.com/openchange
BuildRequires: QtCore-devel >= 4.3.0
BuildRequires: QtGui-devel >= 4.3.0
@@ -47,8 +49,9 @@ BuildRequires: python-samba >= 4.2.2
%endif
BuildRequires: rpmbuild(macros) >= 1.219
# with DCERCP multiplex and pending call support (upstream 4.1.18+ or 4.2.2+)
-BuildRequires: samba-devel >= 4.2.2
-BuildRequires: samba-pidl >= 4.2.2
+# samba-4.10-macros patch requires samba-pidl 4.10+
+BuildRequires: samba-devel >= 4.10
+BuildRequires: samba-pidl >= 4.10
BuildRequires: sed >= 4.0
BuildRequires: subunit-devel
BuildRequires: talloc-devel
@@ -211,6 +214,8 @@ Wtyczka Nagiosa do sprawdzania usług Exchange/OpenChange.
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
# no switch for verbose mode, enable manually :/
%{__sed} -i -e 's/^ @\(\$(\(PIDL\|CC\|CXX\|MOC\)\)/ \1/' Makefile
@@ -251,11 +256,7 @@ cp -p qt/lib/*.h $RPM_BUILD_ROOT%{_includedir}/libqtmapi
cp -a libqtmapi.so.*.* libqtmapi.so $RPM_BUILD_ROOT%{_libdir}
# tests
-%{__rm} $RPM_BUILD_ROOT%{_bindir}/{check_fasttransfer,openchange-testsuite,test_asyncnotif}
-%if %{without mapiproxy}
-# requires mapiproxy
-%{__rm} $RPM_BUILD_ROOT%{_bindir}/ocnotify
-%endif
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/test_asyncnotif
%if %{without mapitest}
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mapitest.1
%endif
diff --git a/disable-mapiproxy.patch b/disable-mapiproxy.patch
index 9435bfd..8cc2ec9 100644
--- a/disable-mapiproxy.patch
+++ b/disable-mapiproxy.patch
@@ -10,3 +10,32 @@ diff -up openchange-2.1-QUADRANT/configure.ac.OC_RULE_ADD-fix openchange-2.1-QUA
mapiproxy=1
fi
fi
+--- openchange-openchange-2.3-VULCAN/configure.ac.orig 2019-04-10 18:45:21.182499045 +0200
++++ openchange-openchange-2.3-VULCAN/configure.ac 2019-04-10 19:39:02.688379984 +0200
+@@ -284,7 +284,7 @@
+ dnl ---------------------------------------------------------------------------
+ dnl Check for check (unittest library)
+ dnl ---------------------------------------------------------------------------
+-PKG_CHECK_MODULES(CHECK, check, [testsuite=1], [AC_MSG_WARN(Conditions unmet for unit testing support)])
++#PKG_CHECK_MODULES(CHECK, check, [testsuite=1], [AC_MSG_WARN(Conditions unmet for unit testing support)])
+ AC_SUBST(CHECK_CFLAGS)
+ AC_SUBST(CHECK_LIBS)
+ OC_RULE_ADD(testsuite, TESTSUITE)
+@@ -689,7 +689,7 @@
+ OC_RULE_ADD(openchangeclient, TOOLS)
+ #OC_RULE_ADD(mapistore_fsocpf, MAPISTORE)
+ OC_RULE_ADD(mapipropsdump, TOOLS)
+-OC_RULE_ADD(ocnotify, TOOLS)
++#OC_RULE_ADD(ocnotify, TOOLS)
+ OC_RULE_ADD(exchange2ical, TOOLS)
+ OC_RULE_ADD(rpcextract, TOOLS)
+ OC_RULE_ADD(openchangepfadmin, TOOLS)
+@@ -698,7 +698,7 @@
+ OC_RULE_ADD(openchangemapidump, TOOLS)
+ OC_RULE_ADD(schemaIDGUID, TOOLS)
+
+-OC_RULE_ADD(check_fasttransfer, TOOLS)
++#OC_RULE_ADD(check_fasttransfer, TOOLS)
+ OC_RULE_ADD(test_asyncnotif, TOOLS)
+
+
diff --git a/openchange-covscan.patch b/openchange-covscan.patch
new file mode 100644
index 0000000..69b2890
--- /dev/null
+++ b/openchange-covscan.patch
@@ -0,0 +1,675 @@
+diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c.covscan openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c
+--- openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c.covscan 2018-07-19 13:53:41.281450703 +0200
++++ openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c 2018-07-19 13:53:41.285450703 +0200
+@@ -53,6 +53,7 @@ static void openchange_all_string_sub(ch
+ }
+ }
+
++#if 0
+ struct RRULE_byday {
+ uint16_t DayOfWeek;
+ const char *DayName;
+@@ -68,6 +69,7 @@ static const struct RRULE_byday RRULE_by
+ { 0x0006, "SA" },
+ { 0x0007, NULL }
+ };
++#endif
+
+ static const char *get_filename(const char *filename)
+ {
+diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c.covscan openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c
+--- openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c.covscan 2018-07-19 13:53:41.281450703 +0200
++++ openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c 2018-07-19 13:53:41.285450703 +0200
+@@ -232,7 +232,7 @@ uint32_t get_exchange_rdfDays_from_ical(
+
+ struct icaltimetype get_icaltimetype_from_tm(struct tm *tm)
+ {
+- struct icaltimetype tt;
++ struct icaltimetype tt = icaltime_null_time ();
+
+ tt.year = tm->tm_year+1900;
+ tt.month = tm->tm_mon+1;
+@@ -259,7 +259,7 @@ struct icaltimetype get_icaltimetype_fro
+
+ struct icaltimetype get_icaldate_from_tm(struct tm *tm)
+ {
+- struct icaltimetype tt;
++ struct icaltimetype tt = icaltime_null_time ();
+
+ tt.year = tm->tm_year+1900;
+ tt.month = tm->tm_mon+1;
+@@ -267,6 +267,7 @@ struct icaltimetype get_icaldate_from_tm
+ tt.hour = 0;
+ tt.minute = 0;
+ tt.second = 0;
++ tt.zone = NULL;
+
+ tt.is_date = 1;
+ tt.is_daylight = 0;
+@@ -292,7 +293,7 @@ struct tm *get_tm_from_FILETIME(const st
+
+ struct icaltimetype get_icaltime_from_FILETIME(const struct FILETIME *ft)
+ {
+- struct icaltimetype tt;
++ struct icaltimetype tt = icaltime_null_time ();
+ NTTIME nttime;
+ struct timeval temp_timeval;
+ struct tm *tm;
+@@ -317,7 +318,7 @@ struct icaltimetype get_icaltime_from_FI
+
+ struct icaltimetype get_icaltime_from_FILETIME_UTC(const struct FILETIME *ft)
+ {
+- struct icaltimetype tt;
++ struct icaltimetype tt = icaltime_null_time ();
+ NTTIME nttime;
+ struct timeval temp_timeval;
+ struct tm *tm;
+@@ -342,7 +343,7 @@ struct icaltimetype get_icaltime_from_FI
+
+ struct icaltimetype get_icaldate_from_FILETIME(const struct FILETIME *ft)
+ {
+- struct icaltimetype tt;
++ struct icaltimetype tt = icaltime_null_time ();
+ NTTIME nttime;
+ struct timeval temp_timeval;
+ struct tm *tm;
+@@ -373,7 +374,7 @@ struct icaltimetype get_icaldate_from_FI
+
+ struct icaltimetype get_icaldate_from_GlobalObjectId(struct GlobalObjectId *GlobalObjectId)
+ {
+- struct icaltimetype tt;
++ struct icaltimetype tt = icaltime_null_time ();
+ tt.year = GlobalObjectId->YH;
+ tt.year = tt.year <<8;
+ tt.year |= GlobalObjectId->YL;
+@@ -513,7 +514,10 @@ uint32_t get_minutes_from_icaltimetype(i
+ time_t time;
+ NTTIME nttime;
+ struct timeval t;
+-
++
++ if (icaltime_is_null_time(icaltime) || !icaltime_is_valid_time(icaltime))
++ return 0;
++
+ tm.tm_year = icaltime.year - 1900;
+ tm.tm_mon = icaltime.month - 1;
+ tm.tm_mday = icaltime.day;
+diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c.covscan openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c
+--- openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c 2018-07-19 13:53:41.286450703 +0200
+@@ -147,7 +147,6 @@ void ical2exchange_property_CATEGORIES(s
+ struct StringArray_r *sArray;
+ char **stringArray = NULL;
+ char string[256];
+- char *value;
+ char *tok;
+ icalproperty *categoriesProp;
+ uint32_t i = 0;
+@@ -160,8 +159,10 @@ void ical2exchange_property_CATEGORIES(s
+ categoriesProp = icalcomponent_get_first_property(ical2exchange->categoriesEvent, ICAL_CATEGORIES_PROPERTY);
+ sArray->cValues = 0;
+ while(categoriesProp){
+-
+- value = strdup(icalproperty_get_categories(categoriesProp));
++ const char *categories = icalproperty_get_categories(categoriesProp);
++ char *value;
++
++ value = strdup(categories ? categories : "");
+ tok = strtok(value, ",");
+ while(tok){
+ if(!stringArray){
+@@ -185,6 +186,7 @@ void ical2exchange_property_CATEGORIES(s
+ }
+ categoriesProp = icalcomponent_get_next_property(ical2exchange->categoriesEvent, ICAL_CATEGORIES_PROPERTY);
+
++ free(value);
+ }
+ sArray->lppszA= (const char **) stringArray;
+
+@@ -519,6 +521,7 @@ void ical2exchange_property_RRULE_EXDATE
+
+ ritr = icalrecur_iterator_new(irt,dtstart);
+ next=icalrecur_iterator_next(ritr);
++ last = icaltime_null_time();
+
+ while (!icaltime_is_null_time(next)){
+ last = next;
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp 2018-07-19 13:53:41.286450703 +0200
+@@ -65,12 +65,12 @@ int main ()
+ }
+
+ }
+- catch (libmapipp::mapi_exception e) // Catch any MAPI exceptions
++ catch (libmapipp::mapi_exception &e) // Catch any MAPI exceptions
+ {
+ std::cout << "MAPI Exception in main: " << e.what()
+ << std::endl;
+ }
+- catch (std::runtime_error e) // Catch any other runtime exceptions
++ catch (std::runtime_error &e) // Catch any other runtime exceptions
+ {
+ std::cout << "std::runtime_error exception in main: "
+ << e.what() << std::endl;
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp 2018-07-19 13:53:41.286450703 +0200
+@@ -61,12 +61,12 @@ int main ()
+ }
+ }
+ }
+- catch (libmapipp::mapi_exception e) // Catch any MAPI exceptions
++ catch (libmapipp::mapi_exception &e) // Catch any MAPI exceptions
+ {
+ std::cout << "MAPI Exception in main: " << e.what()
+ << std::endl;
+ }
+- catch (std::runtime_error e) // Catch any other runtime exceptions
++ catch (std::runtime_error &e) // Catch any other runtime exceptions
+ {
+ std::cout << "std::runtime_error exception in main: "
+ << e.what() << std::endl;
+diff -up openchange-openchange-2.3-VULCAN/libmapi/FXICS.c.covscan openchange-openchange-2.3-VULCAN/libmapi/FXICS.c
+--- openchange-openchange-2.3-VULCAN/libmapi/FXICS.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/FXICS.c 2018-07-19 13:53:41.286450703 +0200
+@@ -800,6 +800,7 @@ _PUBLIC_ enum MAPISTATUS FXGetBuffer(map
+ if ((retval = mapi_object_get_logon_id(obj_source_context, &logon_id)) != MAPI_E_SUCCESS)
+ return retval;
+
++ memset(&request, 0, sizeof(struct FastTransferSourceGetBuffer_req));
+ mem_ctx = talloc_named(session, 0, "FXGetBuffer");
+ size = 0;
+
+diff -up openchange-openchange-2.3-VULCAN/libmapi/idset.c.covscan openchange-openchange-2.3-VULCAN/libmapi/idset.c
+--- openchange-openchange-2.3-VULCAN/libmapi/idset.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/idset.c 2018-07-19 13:53:41.286450703 +0200
+@@ -383,6 +383,7 @@ _PUBLIC_ struct idset *IDSET_parse(TALLO
+ total_bytes += 16;
+ }
+
++ byte_count = 0;
+ globset.length = buffer.length - 16;
+ globset.data = (uint8_t *) buffer.data + 16;
+ idset->ranges = GLOBSET_parse(idset, globset, &idset->range_count, &byte_count);
+@@ -1182,7 +1183,8 @@ _PUBLIC_ void RAWIDSET_push_eid(struct r
+ }
+ else {
+ glob_idset = RAWIDSET_make(rawidset->mem_ctx, true, rawidset->single);
+- last_glob_idset->next = glob_idset;
++ if (last_glob_idset)
++ last_glob_idset->next = glob_idset;
+ }
+ glob_idset->repl.id = eid_id;
+ }
+diff -up openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c
+--- openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c 2018-07-19 13:53:41.287450703 +0200
+@@ -1122,6 +1122,7 @@ _PUBLIC_ enum MAPISTATUS QueryNamedPrope
+ return retval;
+
+ /* Initialization */
++ memset(&request, 0, sizeof(struct QueryNamedProperties_req));
+ mem_ctx = talloc_named(session, 0, "QueryNamesFromIDs");
+ size = 0;
+
+diff -up openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c
+--- openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c 2018-07-19 13:53:41.287450703 +0200
+@@ -101,6 +101,7 @@ _PUBLIC_ enum MAPISTATUS Subscribe(mapi_
+ if ((retval = mapi_object_get_logon_id(obj, &logon_id)) != MAPI_E_SUCCESS)
+ return retval;
+
++ memset(&request, 0, sizeof(struct RegisterNotification_req));
+ mem_ctx = talloc_named(session, 0, "Subscribe");
+
+ /* Fill the Subscribe operation */
+diff -up openchange-openchange-2.3-VULCAN/libmapi/IMessage.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IMessage.c
+--- openchange-openchange-2.3-VULCAN/libmapi/IMessage.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/IMessage.c 2018-07-19 13:53:41.287450703 +0200
+@@ -499,6 +499,8 @@ _PUBLIC_ enum MAPISTATUS SetRecipientTyp
+ enum MAPISTATUS retval;
+ struct SPropValue lpProp;
+
++ memset(&lpProp, 0, sizeof(struct SPropValue));
++
+ lpProp.ulPropTag = PR_RECIPIENT_TYPE;
+ lpProp.value.l = RecipClass;
+
+@@ -1648,6 +1650,7 @@ _PUBLIC_ enum MAPISTATUS OpenEmbeddedMes
+ if ((retval = mapi_object_get_logon_id(obj_attach, &logon_id)) != MAPI_E_SUCCESS)
+ return retval;
+
++ memset(&lpProp, 0, sizeof(struct SPropValue));
+ mem_ctx = talloc_named(session, 0, "OpenEmbeddedMessage");
+
+ /* Fill the OpenEmbeddedMessage request */
+diff -up openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c
+--- openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c 2018-07-19 13:53:41.287450703 +0200
+@@ -93,6 +93,7 @@ _PUBLIC_ enum MAPISTATUS OpenMessage(map
+ if ((retval = mapi_object_get_logon_id(obj_store, &logon_id)) != MAPI_E_SUCCESS)
+ return retval;
+
++ memset(&lpProp, 0, sizeof(struct SPropValue));
+ mem_ctx = talloc_named(session, 0, "OpenMessage");
+
+ /* Fill the OpenMessage operation */
+@@ -232,6 +233,7 @@ _PUBLIC_ enum MAPISTATUS ReloadCachedInf
+ if ((retval = mapi_object_get_logon_id(obj_message, &logon_id)) != MAPI_E_SUCCESS)
+ return retval;
+
++ memset(&lpProp, 0, sizeof(struct SPropValue));
+ mem_ctx = talloc_named(session, 0, "ReloadCachedInformation");
+
+ /* Fill the ReloadCachedInformation operation */
+diff -up openchange-openchange-2.3-VULCAN/libmapi/IStream.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IStream.c
+--- openchange-openchange-2.3-VULCAN/libmapi/IStream.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi/IStream.c 2018-07-19 13:53:41.287450703 +0200
+@@ -183,6 +183,7 @@ _PUBLIC_ enum MAPISTATUS ReadStream(mapi
+ if ((retval = mapi_object_get_logon_id(obj_stream, &logon_id)) != MAPI_E_SUCCESS)
+ return retval;
+
++ memset(&request, 0, sizeof(struct ReadStream_req));
+ mem_ctx = talloc_named(session, 0, "ReadStream");
+
+ *ByteRead = 0;
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp 2018-07-19 13:53:41.287450703 +0200
+@@ -57,7 +57,7 @@ folder::message_container_type folder::f
+ message_container.push_back(message_shared_ptr(new message(m_session,
+ m_id,
+ row_set.aRow[i].lpProps[1].value.d)));
+- } catch(mapi_exception e) {
++ } catch(mapi_exception &e) {
+ mapi_object_release(&contents_table);
+ throw;
+ }
+@@ -102,7 +102,7 @@ folder::hierarchy_container_type folder:
+ try {
+ hierarchy_container.push_back(folder_shared_ptr(new folder(*this,
+ row_set.aRow[i].lpProps[0].value.d)));
+- } catch(mapi_exception e) {
++ } catch(mapi_exception &e) {
+ mapi_object_release(&hierarchy_table);
+ throw;
+ }
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp 2018-07-19 13:53:41.287450703 +0200
+@@ -50,7 +50,7 @@ message::attachment_container_type messa
+ try {
+ attachment_container.push_back(attachment_shared_ptr(new attachment(*this, row_set.aRow[i].lpProps[0].value.l)));
+ }
+- catch(mapi_exception e) {
++ catch(mapi_exception &e) {
+ mapi_object_release(&attachment_table);
+ throw;
+ }
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp 2018-07-19 13:53:41.287450703 +0200
+@@ -61,7 +61,7 @@ void session::login(const std::string& p
+ if (m_profile_name == "") { // if profile is not set, try to get default profile
+ try {
+ m_profile_name = profile_database().get_default_profile_name();
+- } catch(mapi_exception e) {
++ } catch(mapi_exception &e) {
+ uninitialize();
+ throw;
+ }
+@@ -74,7 +74,7 @@ void session::login(const std::string& p
+
+ try {
+ m_message_store->open(m_session);
+- } catch (mapi_exception e) {
++ } catch (mapi_exception &e) {
+ throw;
+ }
+ }
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp 2018-07-19 13:53:41.287450703 +0200
+@@ -84,11 +84,11 @@ int main()
+
+ print_folder_tree(top_folder, mapi_session);
+ }
+- catch (mapi_exception e) // Catch any mapi exceptions
++ catch (mapi_exception &e) // Catch any mapi exceptions
+ {
+ cout << "MAPI Exception @ main: " << e.what() << endl;
+ }
+- catch (std::runtime_error e) // Catch runtime exceptions
++ catch (std::runtime_error &e) // Catch runtime exceptions
+ {
+ cout << "std::runtime_error exception @ main: " << e.what() << endl;
+ }
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp 2018-07-19 13:53:41.287450703 +0200
+@@ -12,7 +12,7 @@ int main()
+ try {
+ dotest();
+ }
+- catch (libmapipp::mapi_exception e) {
++ catch (libmapipp::mapi_exception &e) {
+ std::cout << e.what() << std::endl;
+ }
+
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp 2018-07-19 13:53:41.287450703 +0200
+@@ -27,15 +27,18 @@
+ #define PROFILEDB_NAME_TEMPLATE "/tmp/mapidbXXXXXX"
+ int main ()
+ {
++ char *tmpname = NULL, *tmpname2 = NULL;
++
+ try {
+ libmapipp::profile_database db;
+
+ std::cout << "default profile name: " << db.get_default_profile_name() << std::endl;
+
+ {
+- char *tmpname = (char*) calloc(sizeof(PROFILEDB_NAME_TEMPLATE) + 1, sizeof(char));
+- strncpy(tmpname, PROFILEDB_NAME_TEMPLATE, sizeof(PROFILEDB_NAME_TEMPLATE));
+- int ret = mkstemp(tmpname);
++ int ret;
++
++ tmpname = strdup(PROFILEDB_NAME_TEMPLATE);
++ ret = mkstemp(tmpname);
+ if (ret < 0) {
+ std::cout << "failed to create temporary file: " << strerror(errno) << std::endl;
+ }
+@@ -45,12 +48,15 @@ int main ()
+ std::cout << "failed to create a temporary profile store" << std::endl;
+ }
+ unlink(tmpname);
++ free(tmpname);
++ tmpname = NULL;
+ }
+
+ {
+- char *tmpname2 = (char*) calloc(sizeof(PROFILEDB_NAME_TEMPLATE) + 1, sizeof(char));
+- strncpy(tmpname2, PROFILEDB_NAME_TEMPLATE, sizeof(PROFILEDB_NAME_TEMPLATE));
+- int ret = mkstemp(tmpname2);
++ int ret;
++
++ tmpname2 = strdup(PROFILEDB_NAME_TEMPLATE);
++ ret = mkstemp(tmpname2);
+ if (ret < 0) {
+ std::cout << "failed to create temporary file: " << strerror(errno) << std::endl;
+ }
+@@ -60,19 +66,33 @@ int main ()
+ std::cout << "failed to create a temporary profile store with std::string" << std::endl;
+ }
+ unlink(tmpname2);
++ free(tmpname2);
++ tmpname2 = NULL;
+ }
+
+ std::cout << "finished profile and profile database tests" << std::endl;
+ }
+- catch (libmapipp::mapi_exception e) // Catch any mapi exceptions
++ catch (libmapipp::mapi_exception &e) // Catch any mapi exceptions
+ {
+ std::cout << "MAPI Exception @ main: " << e.what() << std::endl;
+ }
+- catch (std::runtime_error e) // Catch runtime exceptions
++ catch (std::runtime_error &e) // Catch runtime exceptions
+ {
+ std::cout << "std::runtime_error exception @ main: " << e.what() << std::endl;
+
+ }
+
++ if (tmpname) {
++ unlink(tmpname);
++ free(tmpname);
++ tmpname = NULL;
++ }
++
++ if (tmpname2) {
++ unlink(tmpname2);
++ free(tmpname2);
++ tmpname2 = NULL;
++ }
++
+ return 0;
+ }
+diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp
+--- openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp 2018-07-19 13:53:41.288450703 +0200
+@@ -126,11 +126,11 @@ int main ()
+
+ cout << "finished session" << endl;
+ }
+- catch (mapi_exception e) // Catch any mapi exceptions
++ catch (mapi_exception &e) // Catch any mapi exceptions
+ {
+ cout << "MAPI Exception @ main: " << e.what() << endl;
+ }
+- catch (std::runtime_error e) // Catch runtime exceptions
++ catch (std::runtime_error &e) // Catch runtime exceptions
+ {
+ cout << "std::runtime_error exception @ main: " << e.what() << endl;
+
+diff -up openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c.covscan openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c
+--- openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c 2018-07-19 13:53:41.288450703 +0200
+@@ -316,6 +316,8 @@ int ocpf_propvalue(struct ocpf_context *
+ if (!ocpf || !ocpf->mem_ctx) return OCPF_ERROR;
+ if (!ctx) return OCPF_ERROR;
+
++ memset(&lpProps, 0, sizeof(struct SPropValue));
++
+ switch (scope) {
+ case kw_PROPERTY:
+ /* Sanity check: do not insert the same property twice */
+diff -up openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c.covscan openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c
+--- openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c 2018-07-19 13:53:41.288450703 +0200
+@@ -537,6 +537,8 @@ static bool set_external_recipients(TALL
+ uint32_t last;
+ struct SPropValue SPropValue;
+
++ memset(&SPropValue, 0, sizeof(struct SPropValue));
++
+ SRowSet->aRow = talloc_realloc(mem_ctx, SRowSet->aRow, struct SRow, SRowSet->cRows + 2);
+ last = SRowSet->cRows;
+ SRowSet->aRow[last].cValues = 0;
+@@ -626,6 +628,8 @@ _PUBLIC_ enum MAPISTATUS ocpf_set_Recipi
+
+ MAPI_RETVAL_IF(!ctx->recipients->cRows, MAPI_E_NOT_FOUND, NULL);
+
++ memset(&SPropValue, 0, sizeof(struct SPropValue));
++
+ SPropTagArray = set_SPropTagArray(mem_ctx, 0x8,
+ PidTagObjectType,
+ PidTagDisplayName,
+diff -up openchange-openchange-2.3-VULCAN/ndr_mapi.c.covscan openchange-openchange-2.3-VULCAN/ndr_mapi.c
+--- openchange-openchange-2.3-VULCAN/ndr_mapi.c.covscan 2018-07-19 13:53:41.276450703 +0200
++++ openchange-openchange-2.3-VULCAN/ndr_mapi.c 2018-07-19 13:53:41.288450703 +0200
+@@ -1310,8 +1310,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
+ NDR_PULL_ALLOC(ndr, r->out.pulTimeStamp);
+ *r->out.pulTimeStamp = *r->in.pulTimeStamp;
+ NDR_PULL_ALLOC(ndr, r->out.pcbAuxOut);
+- *r->out.pcbAuxOut = *r->in.pcbAuxOut;
+- }
++ if (r->in.pcbAuxOut)
++ *r->out.pcbAuxOut = *r->in.pcbAuxOut;
++ else
++ *r->out.pcbAuxOut = 0;
++ }
+
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+diff -up openchange-openchange-2.3-VULCAN/script/makepropslist.py.covscan openchange-openchange-2.3-VULCAN/script/makepropslist.py
+--- openchange-openchange-2.3-VULCAN/script/makepropslist.py.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/script/makepropslist.py 2018-07-19 13:53:41.288450703 +0200
+@@ -992,7 +992,7 @@ def check_duplicate_alternative_names():
+ if previous_alternative_names.has_key(altname):
+ print "\tIn section", entry["OXPROPS_Sect"], ", alternative name:", altname, "duplicates name in section", previous_alternative_names[altname]
+ if previous_canonical_names.has_key(altname):
+- print "\tIn section", entry["OXPROPS_Sect"], ", alternative name:", altname, "duplicates canonical name in section", previous_alternative_names[altname]
++ print "\tIn section", entry["OXPROPS_Sect"], ", alternative name:", altname, "duplicates canonical name in section", previous_canonical_names[altname]
+ previous_alternative_names[altname] = (entry["OXPROPS_Sect"])
+
+ def check_duplicate_propids():
+diff -up openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c.covscan openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c
+--- openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c.covscan 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c 2018-07-19 13:53:41.288450703 +0200
+@@ -109,12 +109,16 @@ static int callback(uint16_t Notificatio
+ break;
+ case fnevMbit|fnevObjectDeleted:
+ OC_DEBUG(0, "[+] Message deleted");
++ break;
+ case fnevMbit|fnevObjectModified:
+ OC_DEBUG(0, "[+] Message modified");
++ break;
+ case fnevMbit|fnevObjectMoved:
+ OC_DEBUG(0, "[+] Message moved");
++ break;
+ case fnevMbit|fnevObjectCopied:
+ OC_DEBUG(0, "[+] Message copied");
++ break;
+ case fnevMbit|fnevTableModified:
+ ctable = (struct ContentsTableChange *) NotificationData;
+ switch (ctable->TableEvent) {
+@@ -143,6 +147,7 @@ static int callback(uint16_t Notificatio
+ break;
+ case fnevMbit|fnevSbit|fnevObjectModified:
+ OC_DEBUG(0, "[+] A property on a message in a search folder has changed");
++ break;
+ case fnevMbit|fnevSbit|fnevTableModified:
+ stable = (struct ContentsTableChange *) NotificationData;
+ switch (stable->TableEvent) {
+@@ -250,6 +255,7 @@ int main(int argc, const char *argv[])
+
+ retval = MAPIInitialize(&mapi_ctx, opt_profdb);
+ if (retval != MAPI_E_SUCCESS) {
++ talloc_free(mem_ctx);
+ mapi_errstr("MAPIInitialize", retval);
+ exit (1);
+ }
+@@ -261,6 +267,10 @@ int main(int argc, const char *argv[])
+ SetMAPIDebugLevel(mapi_ctx, atoi(opt_debug));
+ }
+
++ mapi_object_init(&obj_store);
++ mapi_object_init(&obj_inbox);
++ mapi_object_init(&obj_contentstable);
++
+ /* if no profile is supplied use the default one */
+ if (!opt_profname) {
+ retval = GetDefaultProfile(mapi_ctx, &opt_profname);
+@@ -280,7 +290,6 @@ int main(int argc, const char *argv[])
+ }
+
+ /* Open the default message store */
+- mapi_object_init(&obj_store);
+
+ retval = OpenMsgStore(session, &obj_store);
+ if (retval != MAPI_E_SUCCESS) {
+@@ -292,11 +301,9 @@ int main(int argc, const char *argv[])
+ retval = GetReceiveFolder(&obj_store, &fid, NULL);
+ MAPI_RETVAL_IF(retval, retval, mem_ctx);
+
+- mapi_object_init(&obj_inbox);
+ retval = OpenFolder(&obj_store, fid, &obj_inbox);
+ MAPI_RETVAL_IF(retval, retval, mem_ctx);
+
+- mapi_object_init(&obj_contentstable);
+ retval = GetContentsTable(&obj_inbox, &obj_contentstable, 0, &count);
+ printf("mailbox contains %i messages\n", count);
+
+diff -up openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c.covscan openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c
+--- openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c.covscan 2018-07-19 13:53:41.276450703 +0200
++++ openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c 2018-07-19 13:53:41.289450703 +0200
+@@ -79,21 +79,21 @@
+ */
+
+
+-static const const struct ndr_interface_table *load_exchange_emsmdb_dso(const char *plugin)
++static const struct ndr_interface_table *load_exchange_emsmdb_dso(const char *plugin, void **phandle)
+ {
+ const struct ndr_interface_table *p;
+- void *handle;
+
+- handle = dlopen(plugin, RTLD_NOW);
+- if (handle == NULL) {
++ *phandle = dlopen(plugin, RTLD_NOW);
++ if (*phandle == NULL) {
+ printf("%s: Unable to open: %s\n", plugin, dlerror());
+ return NULL;
+ }
+
+- p = (const struct ndr_interface_table *) dlsym(handle, "ndr_table_exchange_emsmdb");
++ p = (const struct ndr_interface_table *) dlsym(*phandle, "ndr_table_exchange_emsmdb");
+ if (!p) {
+ OC_DEBUG(0, "%s: Unable to find DCE/RPC interface table for 'ndr_table_exchange_emsmdb': %s", plugin, dlerror());
+- dlclose(handle);
++ dlclose(*phandle);
++ *phandle = NULL;
+ return NULL;
+ }
+
+@@ -409,6 +409,7 @@ int main(int argc, const char *argv[])
+ struct SPropTagArray *s;
+ const char *opt_reqfile = NULL;
+ const char *opt_replfile = NULL;
++ void *plhandle = NULL;
+ poptContext pc;
+ int opt;
+ int index = -1;
+@@ -442,7 +443,7 @@ int main(int argc, const char *argv[])
+ exit (1);
+ }
+
+- p = load_exchange_emsmdb_dso(PLUGIN);
++ p = load_exchange_emsmdb_dso(PLUGIN, &plhandle);
+ if (!p) {
+ exit (1);
+ }
+@@ -454,6 +455,7 @@ int main(int argc, const char *argv[])
+ s = process_request(mem_ctx, f, opt_reqfile, &opnum, &index);
+ if (!s) {
+ talloc_free(mem_ctx);
++ dlclose(plhandle);
+ exit (1);
+ }
+
+@@ -461,9 +463,12 @@ int main(int argc, const char *argv[])
+ ret = process_response(mem_ctx, f, opt_replfile, s, opnum, index);
+ if (ret == -1) {
+ talloc_free(mem_ctx);
++ dlclose(plhandle);
+ exit (1);
+ }
+
+ talloc_free(mem_ctx);
++ dlclose(plhandle);
++
+ return (0);
+ }
+diff -up openchange-openchange-2.3-VULCAN/utils/openchangeclient.c.covscan openchange-openchange-2.3-VULCAN/utils/openchangeclient.c
+--- openchange-openchange-2.3-VULCAN/utils/openchangeclient.c.covscan 2018-07-19 13:53:41.277450703 +0200
++++ openchange-openchange-2.3-VULCAN/utils/openchangeclient.c 2018-07-19 13:53:41.289450703 +0200
+@@ -629,6 +629,8 @@ static bool set_external_recipients(TALL
+ uint32_t last;
+ struct SPropValue SPropValue;
+
++ memset(&SPropValue, 0, sizeof(struct SPropValue));
++
+ SRowSet->aRow = talloc_realloc(mem_ctx, SRowSet->aRow, struct SRow, SRowSet->cRows + 1);
+ last = SRowSet->cRows;
+ SRowSet->aRow[last].cValues = 0;
+@@ -821,6 +823,8 @@ static enum MAPISTATUS openchangeclient_
+ mapi_object_init(&obj_outbox);
+ mapi_object_init(&obj_message);
+
++ memset(&SPropValue, 0, sizeof(struct SPropValue));
++
+ if (oclient->pf == true) {
+ retval = openchangeclient_getpfdir(mem_ctx, obj_store, &obj_outbox, oclient->folder);
+ if (retval != MAPI_E_SUCCESS) return retval;
diff --git a/openchange-samba-4.10-macros.patch b/openchange-samba-4.10-macros.patch
new file mode 100644
index 0000000..0e8e2b9
--- /dev/null
+++ b/openchange-samba-4.10-macros.patch
@@ -0,0 +1,159 @@
+diff -up openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c
+--- openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c.samba-4.10-macros 2019-02-14 15:19:53.317769411 +0100
++++ openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c 2019-02-14 15:19:53.331769410 +0100
+@@ -39,6 +39,8 @@
+
+ #include <time.h>
+
++#include "libmapi/libmapi_private.h"
++
+ static ssize_t openchange_sys_read(int fd, void *buf, size_t count)
+ {
+ ssize_t ret;
+@@ -101,7 +103,7 @@ static enum ndr_err_code openchange_ndr_
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->sid_rev_num));
+ NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->num_auths));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
+- if (r->num_auths < 0 || r->num_auths > ARRAY_SIZE(r->sub_auths)) {
++ if (r->num_auths < 0 || r->num_auths > OC_ARRAY_SIZE(r->sub_auths)) {
+ return ndr_push_error(ndr, NDR_ERR_RANGE, "value out of range");
+ }
+ for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) {
+@@ -659,7 +661,7 @@ again:
+
+ OC_DEBUG(3, "Setting account password '%s'", mapiadmin_ctx->password);
+
+- ZERO_STRUCT(u);
++ OC_ZERO_STRUCT(u);
+ s.in.user_handle = &mapiadmin_ctx->user_ctx->user_handle;
+ s.in.info = &u;
+ s.in.level = 24;
+@@ -687,7 +689,7 @@ again:
+ }
+ }
+
+- ZERO_STRUCT(u);
++ OC_ZERO_STRUCT(u);
+ s.in.user_handle = &mapiadmin_ctx->user_ctx->user_handle;
+ s.in.info = &u;
+ s.in.level = 21;
+diff -up openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h.samba-4.10-macros openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h
+--- openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h.samba-4.10-macros 2019-02-14 15:19:53.313769411 +0100
++++ openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h 2019-02-14 15:19:53.331769410 +0100
+@@ -141,6 +141,11 @@ const char *libmapi_iface_best_ip(struc
+ bool libmapi_iface_is_local(struct interface *, const char *);
+ bool libmapi_iface_same_net(const char *, const char *, const char *);
+
++#define OC_ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x))
++#define OC_ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0)
++#define OC_ZERO_STRUCTPN(x) memset((char *)(x), 0, sizeof(*(x)))
++#define OC_ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
++
+ __END_DECLS
+
+ #undef _PRINTF_ATTRIBUTE
+diff -up openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c
+--- openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c.samba-4.10-macros 2019-02-14 15:19:53.318769411 +0100
++++ openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c 2019-02-14 15:19:53.331769410 +0100
+@@ -70,7 +70,7 @@ static void add_interface(TALLOC_CTX *me
+ if (iface == NULL)
+ return;
+
+- ZERO_STRUCTPN(iface);
++ OC_ZERO_STRUCTPN(iface);
+
+ iface->ip = ip;
+ iface->nmask = nmask;
+diff -up openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c
+--- openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c.samba-4.10-macros 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c 2019-02-14 15:19:53.331769410 +0100
+@@ -703,7 +703,7 @@ NTSTATUS dcerpc_server_mapiproxy_init(vo
+ NTSTATUS ret;
+ struct dcesrv_endpoint_server ep_server;
+
+- ZERO_STRUCT(ep_server);
++ OC_ZERO_STRUCT(ep_server);
+
+ /* Fill in our name */
+ ep_server.name = "mapiproxy";
+diff -up openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/ndr_mapi.c
+--- openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.10-macros 2019-02-14 15:19:53.329769410 +0100
++++ openchange-openchange-2.3-VULCAN/ndr_mapi.c 2019-02-14 15:19:53.331769410 +0100
+@@ -921,7 +921,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
+ TALLOC_CTX *_mem_save_length_0;
+
+ if (flags & NDR_IN) {
+- ZERO_STRUCT(r->out);
++ OC_ZERO_STRUCT(r->out);
+
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.handle);
+@@ -961,7 +961,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
+ NDR_PULL_ALLOC(ndr, r->out.handle);
+ *r->out.handle = *r->in.handle;
+ NDR_PULL_ALLOC(ndr, r->out.mapi_response);
+- ZERO_STRUCTP(r->out.mapi_response);
++ OC_ZERO_STRUCTP(r->out.mapi_response);
+ NDR_PULL_ALLOC(ndr, r->out.length);
+ *r->out.length = *r->in.length;
+ }
+@@ -1235,7 +1235,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
+ TALLOC_CTX *_mem_save_rgbAuxOut_1;
+
+ if (flags & NDR_IN) {
+- ZERO_STRUCT(r->out);
++ OC_ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.szUserDN));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.szUserDN));
+@@ -1294,19 +1294,19 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pcbAuxOut_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.handle);
+- ZERO_STRUCTP(r->out.handle);
++ OC_ZERO_STRUCTP(r->out.handle);
+ NDR_PULL_ALLOC(ndr, r->out.pcmsPollsMax);
+- ZERO_STRUCTP(r->out.pcmsPollsMax);
++ OC_ZERO_STRUCTP(r->out.pcmsPollsMax);
+ NDR_PULL_ALLOC(ndr, r->out.pcRetry);
+- ZERO_STRUCTP(r->out.pcRetry);
++ OC_ZERO_STRUCTP(r->out.pcRetry);
+ NDR_PULL_ALLOC(ndr, r->out.pcmsRetryDelay);
+- ZERO_STRUCTP(r->out.pcmsRetryDelay);
++ OC_ZERO_STRUCTP(r->out.pcmsRetryDelay);
+ NDR_PULL_ALLOC(ndr, r->out.picxr);
+- ZERO_STRUCTP(r->out.picxr);
++ OC_ZERO_STRUCTP(r->out.picxr);
+ NDR_PULL_ALLOC(ndr, r->out.szDNPrefix);
+- ZERO_STRUCTP(r->out.szDNPrefix);
++ OC_ZERO_STRUCTP(r->out.szDNPrefix);
+ NDR_PULL_ALLOC(ndr, r->out.szDisplayName);
+- ZERO_STRUCTP(r->out.szDisplayName);
++ OC_ZERO_STRUCTP(r->out.szDisplayName);
+ NDR_PULL_ALLOC(ndr, r->out.pulTimeStamp);
+ *r->out.pulTimeStamp = *r->in.pulTimeStamp;
+ NDR_PULL_ALLOC(ndr, r->out.pcbAuxOut);
+diff -up openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c
+--- openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c.samba-4.10-macros 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c 2019-02-14 15:19:53.331769410 +0100
+@@ -280,7 +280,7 @@ static void _make_test_srow(TALLOC_CTX *
+ {
+ struct SPropValue prop_val;
+
+- ZERO_STRUCT(prop_val);
++ OC_ZERO_STRUCT(prop_val);
+ /* PT_I8 */
+ prop_val.ulPropTag = PR_FID;
+ prop_val.value.d = 0x0123456789ABCDEFul;
+diff -up openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c
+--- openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c.samba-4.10-macros 2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c 2019-02-14 15:19:53.332769410 +0100
+@@ -638,7 +638,7 @@ static void ocdb_logger_setup(void)
+ ck_abort();
+ }
+
+- ZERO_STRUCT(functions_called);
++ OC_ZERO_STRUCT(functions_called);
+ }
+
+ static void ocdb_logger_teardown(void)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/openchange.git/commitdiff/f28b8ba49a90595347fb6a401e7dfb87b857e600
More information about the pld-cvs-commit
mailing list