64 lines
1.6 KiB
Diff
64 lines
1.6 KiB
Diff
From 466c5b509e668e5d211e919ef6d1fc360e4269f4 Mon Sep 17 00:00:00 2001
|
|
From: xukunpeng <xukunpeng2@huawei.com>
|
|
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
|
|
|