From 3fdf6696a9f289409f004c9656a4b7019dbee02d Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 9 Oct 2024 14:32:40 +0800 Subject: [PATCH 1/2] fix: memory leak on windows --- source/libs/tdb/src/db/tdbPage.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/libs/tdb/src/db/tdbPage.c b/source/libs/tdb/src/db/tdbPage.c index be391a75f1..6bc0c711ae 100644 --- a/source/libs/tdb/src/db/tdbPage.c +++ b/source/libs/tdb/src/db/tdbPage.c @@ -102,6 +102,8 @@ void tdbPageDestroy(SPage *pPage, void (*xFree)(void *arg, void *ptr), void *arg tdbOsFree(pPage->apOvfl[iOvfl]); } + TDB_DESTROY_PAGE_LOCK(pPage); + ptr = pPage->pData; xFree(arg, ptr); From 560f2d6f24dba16018847daab683cd184cf8c3bc Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 9 Oct 2024 18:05:46 +0800 Subject: [PATCH 2/2] check return code --- source/libs/tdb/src/db/tdbPage.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/libs/tdb/src/db/tdbPage.c b/source/libs/tdb/src/db/tdbPage.c index 6bc0c711ae..49a15070a6 100644 --- a/source/libs/tdb/src/db/tdbPage.c +++ b/source/libs/tdb/src/db/tdbPage.c @@ -102,7 +102,9 @@ void tdbPageDestroy(SPage *pPage, void (*xFree)(void *arg, void *ptr), void *arg tdbOsFree(pPage->apOvfl[iOvfl]); } - TDB_DESTROY_PAGE_LOCK(pPage); + if (TDB_DESTROY_PAGE_LOCK(pPage) != 0) { + tdbError("tdb/page-destroy: destroy page lock failed."); + } ptr = pPage->pData; xFree(arg, ptr);