alloc: don't overwrite allocator during init if set 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.
diff --git a/src/alloc.c b/src/alloc.c
index 35fdd00..d4e6f1e 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