summaryrefslogtreecommitdiff
path: root/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch')
-rw-r--r--dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch b/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch
new file mode 100644
index 000000000000..553967e8dedd
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch
@@ -0,0 +1,33 @@
+--- a/src/mongo/client/sasl_client_session.cpp 2014-10-15 00:40:29.000000000 +0400
++++ b/src/mongo/client/sasl_client_session.cpp 2015-02-07 18:56:02.287762467 +0300
+@@ -29,17 +29,26 @@
+ * doesn't initialize the library for us.
+ */
+
+- void* saslOurMalloc(unsigned long sz) {
++// Version 2.1.26 is the first version to use size_t in the allocator signatures
++#if (SASL_VERSION_FULL >= ((2 << 16) | (1 << 8) | 26))
++ typedef size_t SaslAllocSize;
++#else
++ typedef unsigned long SaslAllocSize;
++#endif
++
++ typedef int(*SaslCallbackFn)();
++
++ void* saslOurMalloc(SaslAllocSize sz) {
+ return ourmalloc(sz);
+ }
+
+- void* saslOurCalloc(unsigned long count, unsigned long size) {
++ void* saslOurCalloc(SaslAllocSize count, SaslAllocSize size) {
+ void* ptr = calloc(count, size);
+- if (!ptr) printStackAndExit(0);
++ if (!ptr) abort();
+ return ptr;
+ }
+
+- void* saslOurRealloc(void* ptr, unsigned long sz) {
++ void* saslOurRealloc(void* ptr, SaslAllocSize sz) {
+ return ourrealloc(ptr, sz);
+ }
+