From 21858201e01b77dd3b1a8d1b96c9ba45e3d4cea7 Mon Sep 17 00:00:00 2001 From: Leo Yuriev Date: Tue, 24 Jul 2018 00:17:54 +0300 Subject: [PATCH] mdbx: fix nasty suspend_and_append() bug. Change-Id: I043adcff2e6c040426a51b5d4b15bac849e6dd9f --- src/lck-windows.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lck-windows.c b/src/lck-windows.c index 327979e6..02b074e9 100644 --- a/src/lck-windows.c +++ b/src/lck-windows.c @@ -199,7 +199,9 @@ static int suspend_and_append(mdbx_handle_array_t **array, (limit * 2 - ARRAY_LENGTH((*array)->handles))); if (!ptr) return MDBX_ENOMEM; - (*array) = (mdbx_handle_array_t *)ptr; + if (limit == ARRAY_LENGTH((*array)->handles)) + memcpy(ptr, *array, sizeof(mdbx_handle_array_t)); + *array = (mdbx_handle_array_t *)ptr; (*array)->limit = limit * 2; }