1 Star 0 Fork 22

阿翔与山海经/opengauss-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0001-cJSON.patch 5.33 KB
一键复制 编辑 原始数据 按行查看 历史
zhangxubo 提交于 2021-12-02 16:30 . init opengauss-server
From dec906196dc53e4aaa2937d1e57a8b3761a1b531 Mon Sep 17 00:00:00 2001
From: panggou <jiangjiangjun@huawei.com>
Date: Tue, 9 Mar 2021 11:11:59 +0800
Subject: [PATCH] =?UTF-8?q?[Huawei]=E5=AE=89=E5=85=A8=E7=BC=96=E8=AF=91?=
=?UTF-8?q?=E9=80=89=E9=A1=B9=EF=BC=8C=E9=80=82=E9=85=8D=E4=BA=A7=E5=93=81?=
=?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Offering: GaussDB Kernel
Signed-off-by: jiangjiangjun@huawei.com
---
Makefile | 4 ++--
cJSON.c | 18 +++++++++---------
cJSON.h | 1 +
3 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index 4e727b7..1ee5a21 100644
--- a/Makefile
+++ b/Makefile
@@ -12,8 +12,8 @@ LIBVERSION = 1.7.13
CJSON_SOVERSION = 1
UTILS_SOVERSION = 1
-CJSON_SO_LDFLAG=-Wl,-soname=$(CJSON_LIBNAME).so.$(CJSON_SOVERSION)
-UTILS_SO_LDFLAG=-Wl,-soname=$(UTILS_LIBNAME).so.$(UTILS_SOVERSION)
+CJSON_SO_LDFLAG=-Wl,-z,relro,-z,now,-soname=$(CJSON_LIBNAME).so.$(CJSON_SOVERSION)
+UTILS_SO_LDFLAG=-Wl,-z,relro,-z,now,-soname=$(UTILS_LIBNAME).so.$(UTILS_SOVERSION)
PREFIX ?= /usr/local
INCLUDE_PATH ?= include/cjson
diff --git a/cJSON.c b/cJSON.c
index a5d3987..27c9388 100644
--- a/cJSON.c
+++ b/cJSON.c
@@ -181,7 +181,7 @@ static void * CJSON_CDECL internal_realloc(void *pointer, size_t size)
static internal_hooks global_hooks = { internal_malloc, internal_free, internal_realloc };
-static unsigned char* cJSON_strdup(const unsigned char* string, const internal_hooks * const hooks)
+CJSON_PUBLIC(unsigned char*) cJSON_strdup(const unsigned char* string)
{
size_t length = 0;
unsigned char *copy = NULL;
@@ -192,7 +192,7 @@ static unsigned char* cJSON_strdup(const unsigned char* string, const internal_h
}
length = strlen((const char*)string) + sizeof("");
- copy = (unsigned char*)hooks->allocate(length);
+ copy = (unsigned char*)global_hooks.allocate(length);
if (copy == NULL)
{
return NULL;
@@ -406,7 +406,7 @@ CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring)
strcpy(object->valuestring, valuestring);
return object->valuestring;
}
- copy = (char*) cJSON_strdup((const unsigned char*)valuestring, &global_hooks);
+ copy = (char*) cJSON_strdup((const unsigned char*)valuestring);
if (copy == NULL)
{
return NULL;
@@ -2020,7 +2020,7 @@ static cJSON_bool add_item_to_object(cJSON * const object, const char * const st
}
else
{
- new_key = (char*)cJSON_strdup((const unsigned char*)string, hooks);
+ new_key = (char*)cJSON_strdup((const unsigned char*)string);
if (new_key == NULL)
{
return false;
@@ -2341,7 +2341,7 @@ static cJSON_bool replace_item_in_object(cJSON *object, const char *string, cJSO
{
cJSON_free(replacement->string);
}
- replacement->string = (char*)cJSON_strdup((const unsigned char*)string, &global_hooks);
+ replacement->string = (char*)cJSON_strdup((const unsigned char*)string);
replacement->type &= ~cJSON_StringIsConst;
return cJSON_ReplaceItemViaPointer(object, get_object_item(object, string, case_sensitive), replacement);
@@ -2434,7 +2434,7 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string)
if(item)
{
item->type = cJSON_String;
- item->valuestring = (char*)cJSON_strdup((const unsigned char*)string, &global_hooks);
+ item->valuestring = (char*)cJSON_strdup((const unsigned char*)string);
if(!item->valuestring)
{
cJSON_Delete(item);
@@ -2484,7 +2484,7 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw)
if(item)
{
item->type = cJSON_Raw;
- item->valuestring = (char*)cJSON_strdup((const unsigned char*)raw, &global_hooks);
+ item->valuestring = (char*)cJSON_strdup((const unsigned char*)raw);
if(!item->valuestring)
{
cJSON_Delete(item);
@@ -2686,7 +2686,7 @@ CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse)
newitem->valuedouble = item->valuedouble;
if (item->valuestring)
{
- newitem->valuestring = (char*)cJSON_strdup((unsigned char*)item->valuestring, &global_hooks);
+ newitem->valuestring = (char*)cJSON_strdup((unsigned char*)item->valuestring);
if (!newitem->valuestring)
{
goto fail;
@@ -2694,7 +2694,7 @@ CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse)
}
if (item->string)
{
- newitem->string = (item->type&cJSON_StringIsConst) ? item->string : (char*)cJSON_strdup((unsigned char*)item->string, &global_hooks);
+ newitem->string = (item->type&cJSON_StringIsConst) ? item->string : (char*)cJSON_strdup((unsigned char*)item->string);
if (!newitem->string)
{
goto fail;
diff --git a/cJSON.h b/cJSON.h
index 0c6c8e0..4481dfd 100644
--- a/cJSON.h
+++ b/cJSON.h
@@ -286,6 +286,7 @@ CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring)
CJSON_PUBLIC(void *) cJSON_malloc(size_t size);
CJSON_PUBLIC(void) cJSON_free(void *object);
+CJSON_PUBLIC(unsigned char*) cJSON_strdup(const unsigned char* string);
#ifdef __cplusplus
}
#endif
--
2.23.0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/a-xiang-and-shanhaijing/opengauss-server.git
git@gitee.com:a-xiang-and-shanhaijing/opengauss-server.git
a-xiang-and-shanhaijing
opengauss-server
opengauss-server
master

搜索帮助