summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2018-07-15 17:30:04 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2018-07-15 17:30:04 +0200
commit19007b19b70504a3964f5d8320d0ef39c01ce6b0 (patch)
tree0881210ee61eb83c8b143ee1f7d992b7ad10e0eb
parent2510268a269cd79e5cfa68ce8f56e540131f3b6d (diff)
downloadlibgit2-19007b19b70504a3964f5d8320d0ef39c01ce6b0.tar.gz
alloc: don't overwrite allocator during init if setcmn/allocator-init-order
If the allocator has been set before we the library is initialised, we would replace that setting with the standard allocator contrary to the user's wishes.
-rw-r--r--src/alloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 35fdd00c4..d4e6f1ebd 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -17,6 +17,13 @@ git_allocator git__allocator;
int git_allocator_global_init(void)
{
+ /*
+ * We don't want to overwrite any allocator which has been set before
+ * the init function is called.
+ */
+ if (git__allocator.gmalloc != NULL)
+ return 0;
+
#if defined(GIT_MSVC_CRTDBG)
return git_win32_crtdbg_init_allocator(&git__allocator);
#else