From 466c5b509e668e5d211e919ef6d1fc360e4269f4 Mon Sep 17 00:00:00 2001 From: xukunpeng Date: Tue, 13 Apr 2021 11:06:05 +0800 Subject: [PATCH 3/3] [Huawei]patch to zlib Offering: GaussDB Kernel More detail: patch huawei_unzip_alloc_hook.patch and huawei_unzip_alloc_hook.patch2 Signed-off-by: xukunpeng xukunpeng2@huawei.com --- contrib/minizip/unzip.c | 10 ++++++++++ contrib/minizip/unzip.h | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/contrib/minizip/unzip.c b/contrib/minizip/unzip.c index bcfb941..a321034 100644 --- a/contrib/minizip/unzip.c +++ b/contrib/minizip/unzip.c @@ -108,6 +108,16 @@ #define UNZ_MAXFILENAMEINZIP (256) #endif +static unz_memfunc g_unz_memapi = {0, 0}; + +extern int ZEXPORT unz_set_memfuncs(const unz_memfunc* memfunc) +{ + g_unz_memapi = *memfunc; +} + +#define ALLOC(size) ((*(g_unz_memapi.m_malloc))(size)) +#define TRYFREE(p) { if (p) { (*(g_unz_memapi.m_free))(p); p = NULL; } } + #ifndef ALLOC # define ALLOC(size) (malloc(size)) #endif diff --git a/contrib/minizip/unzip.h b/contrib/minizip/unzip.h index 2104e39..06eb49c 100644 --- a/contrib/minizip/unzip.h +++ b/contrib/minizip/unzip.h @@ -429,6 +429,19 @@ extern int ZEXPORT unzSetOffset64 (unzFile file, ZPOS64_T pos); extern int ZEXPORT unzSetOffset (unzFile file, uLong pos); +/* memory manager api */ +typedef voidp (* malloc_pf) (size_t); +typedef void (* free_pf) (voidp); + +typedef struct unz_memfunc_s +{ + malloc_pf m_malloc; + free_pf m_free; +} unz_memfunc; + +extern int ZEXPORT unz_set_memfuncs OF ((const unz_memfunc* memfunc)); + + #ifdef __cplusplus } -- 2.23.0