From 3c73975513f4f3c0276d936e6684686eb2e40b88 Mon Sep 17 00:00:00 2001 From: miloyip Date: Sun, 3 May 2015 20:52:44 +0800 Subject: [PATCH 1/2] Fix 2 FILE* leaks in documenttest.cpp --- test/unittest/documenttest.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/unittest/documenttest.cpp b/test/unittest/documenttest.cpp index 71cd777..7e5d766 100644 --- a/test/unittest/documenttest.cpp +++ b/test/unittest/documenttest.cpp @@ -146,6 +146,7 @@ TEST(Document, ParseStream_EncodedInputStream) { StringBuffer bos2; Writer writer(bos2); reader.Parse(is, writer); + fclose(fp); EXPECT_EQ(bos.GetSize(), bos2.GetSize()); EXPECT_EQ(0, memcmp(bos.GetString(), bos2.GetString(), bos2.GetSize())); @@ -184,6 +185,7 @@ TEST(Document, ParseStream_AutoUTFInputStream) { StringBuffer bos2; Writer writer(bos2); reader.Parse(is, writer); + fclose(fp); EXPECT_EQ(bos.GetSize(), bos2.GetSize()); EXPECT_EQ(0, memcmp(bos.GetString(), bos2.GetString(), bos2.GetSize())); From ae61b7973cff48247ebd1a874e4f47270392e8ca Mon Sep 17 00:00:00 2001 From: miloyip Date: Sun, 3 May 2015 21:02:34 +0800 Subject: [PATCH 2/2] Standardize CrtAllocator::Realloc() for newSize = 0 --- include/rapidjson/allocators.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/rapidjson/allocators.h b/include/rapidjson/allocators.h index d68b74c..16bf038 100644 --- a/include/rapidjson/allocators.h +++ b/include/rapidjson/allocators.h @@ -68,7 +68,14 @@ public: else return NULL; // standardize to returning NULL. } - void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { (void)originalSize; return std::realloc(originalPtr, newSize); } + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { + (void)originalSize; + if (newSize == 0) { + std::free(originalPtr); + return NULL; + } + return std::realloc(originalPtr, newSize); + } static void Free(void *ptr) { std::free(ptr); } };