Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
db5fe553
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
db5fe553
编写于
6月 01, 2022
作者:
wmmhello
提交者:
GitHub
6月 01, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #13381 from taosdata/feat/tag_refact
fix:fix memory error in Address Sanitizer
上级
fb93e68f
478fa8b6
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
12 addition
and
11 deletion
+12
-11
source/common/src/tdataformat.c
source/common/src/tdataformat.c
+1
-1
source/libs/nodes/src/nodesCloneFuncs.c
source/libs/nodes/src/nodesCloneFuncs.c
+5
-3
source/libs/parser/src/parInsert.c
source/libs/parser/src/parInsert.c
+6
-6
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+0
-1
未找到文件。
source/common/src/tdataformat.c
浏览文件 @
db5fe553
...
@@ -905,7 +905,7 @@ static void debugPrintTagVal(int8_t type, const void *val, int32_t vlen, const c
...
@@ -905,7 +905,7 @@ static void debugPrintTagVal(int8_t type, const void *val, int32_t vlen, const c
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
{
case
TSDB_DATA_TYPE_NCHAR
:
{
char
tmpVal
[
32
]
=
{
0
};
char
tmpVal
[
32
]
=
{
0
};
memcpy
(
tmpVal
,
val
,
32
);
strncpy
(
tmpVal
,
val
,
vlen
>
31
?
31
:
vlen
);
printf
(
"%s:%d type:%d vlen:%d, val:
\"
%s
\"\n
"
,
tag
,
ln
,
(
int32_t
)
type
,
vlen
,
tmpVal
);
printf
(
"%s:%d type:%d vlen:%d, val:
\"
%s
\"\n
"
,
tag
,
ln
,
(
int32_t
)
type
,
vlen
,
tmpVal
);
}
break
;
}
break
;
case
TSDB_DATA_TYPE_FLOAT
:
case
TSDB_DATA_TYPE_FLOAT
:
...
...
source/libs/nodes/src/nodesCloneFuncs.c
浏览文件 @
db5fe553
...
@@ -142,14 +142,16 @@ static SNode* valueNodeCopy(const SValueNode* pSrc, SValueNode* pDst) {
...
@@ -142,14 +142,16 @@ static SNode* valueNodeCopy(const SValueNode* pSrc, SValueNode* pDst) {
break
;
break
;
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:{
pDst
->
datum
.
p
=
taosMemoryMalloc
(
pSrc
->
node
.
resType
.
bytes
+
VARSTR_HEADER_SIZE
+
1
);
int32_t
len
=
varDataTLen
(
pSrc
->
datum
.
p
)
+
1
;
pDst
->
datum
.
p
=
taosMemoryCalloc
(
1
,
len
);
if
(
NULL
==
pDst
->
datum
.
p
)
{
if
(
NULL
==
pDst
->
datum
.
p
)
{
nodesDestroyNode
(
pDst
);
nodesDestroyNode
(
pDst
);
return
NULL
;
return
NULL
;
}
}
memcpy
(
pDst
->
datum
.
p
,
pSrc
->
datum
.
p
,
pSrc
->
node
.
resType
.
bytes
+
VARSTR_HEADER_SIZE
+
1
);
memcpy
(
pDst
->
datum
.
p
,
pSrc
->
datum
.
p
,
len
);
break
;
break
;
}
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_DECIMAL
:
case
TSDB_DATA_TYPE_DECIMAL
:
case
TSDB_DATA_TYPE_BLOB
:
case
TSDB_DATA_TYPE_BLOB
:
...
...
source/libs/parser/src/parInsert.c
浏览文件 @
db5fe553
...
@@ -941,7 +941,7 @@ static int32_t parseTagToken(char** end, SToken* pToken, SSchema* pSchema, int16
...
@@ -941,7 +941,7 @@ static int32_t parseTagToken(char** end, SToken* pToken, SSchema* pSchema, int16
if
(
p
==
NULL
)
{
if
(
p
==
NULL
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
return
TSDB_CODE_OUT_OF_MEMORY
;
}
}
if
(
!
taosMbsToUcs4
(
pToken
->
z
,
pToken
->
n
,
(
TdUcs4
*
)(
p
),
p
Schema
->
bytes
-
VARSTR_HEADE
R_SIZE
,
&
output
))
{
if
(
!
taosMbsToUcs4
(
pToken
->
z
,
pToken
->
n
,
(
TdUcs4
*
)(
p
),
p
Token
->
n
*
TSDB_NCHA
R_SIZE
,
&
output
))
{
if
(
errno
==
E2BIG
)
{
if
(
errno
==
E2BIG
)
{
taosMemoryFree
(
p
);
taosMemoryFree
(
p
);
return
generateSyntaxErrMsg
(
pMsgBuf
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pSchema
->
name
);
return
generateSyntaxErrMsg
(
pMsgBuf
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pSchema
->
name
);
...
@@ -1743,10 +1743,10 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, char* tN
...
@@ -1743,10 +1743,10 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, char* tN
code
=
TSDB_CODE_OUT_OF_MEMORY
;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
end
;
goto
end
;
}
}
if
(
!
taosMbsToUcs4
(
bind
[
c
].
buffer
,
colLen
,
(
TdUcs4
*
)(
p
),
pSchema
->
bytes
-
VARSTR_HEADE
R_SIZE
,
&
output
))
{
if
(
!
taosMbsToUcs4
(
bind
[
c
].
buffer
,
colLen
,
(
TdUcs4
*
)(
p
),
colLen
*
TSDB_NCHA
R_SIZE
,
&
output
))
{
if
(
errno
==
E2BIG
)
{
if
(
errno
==
E2BIG
)
{
taosMemoryFree
(
p
);
taosMemoryFree
(
p
);
code
=
generateSyntaxErrMsg
(
&
pBuf
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pSchema
->
name
);
code
=
generateSyntaxErrMsg
(
&
pBuf
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
p
Tag
Schema
->
name
);
goto
end
;
goto
end
;
}
}
char
buf
[
512
]
=
{
0
};
char
buf
[
512
]
=
{
0
};
...
@@ -2132,12 +2132,12 @@ static int32_t smlBuildTagRow(SArray* cols, SParsedDataColInfo* tags, SSchema* p
...
@@ -2132,12 +2132,12 @@ static int32_t smlBuildTagRow(SArray* cols, SParsedDataColInfo* tags, SSchema* p
val
.
nData
=
kv
->
length
;
val
.
nData
=
kv
->
length
;
}
else
if
(
pTagSchema
->
type
==
TSDB_DATA_TYPE_NCHAR
)
{
}
else
if
(
pTagSchema
->
type
==
TSDB_DATA_TYPE_NCHAR
)
{
int32_t
output
=
0
;
int32_t
output
=
0
;
void
*
p
=
taosMemoryCalloc
(
1
,
pTagSchema
->
bytes
-
VARSTR_HEADE
R_SIZE
);
void
*
p
=
taosMemoryCalloc
(
1
,
kv
->
length
*
TSDB_NCHA
R_SIZE
);
if
(
p
==
NULL
)
{
if
(
p
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
end
;
goto
end
;
}
}
if
(
!
taosMbsToUcs4
(
kv
->
value
,
kv
->
length
,
(
TdUcs4
*
)(
p
),
pTagSchema
->
bytes
-
VARSTR_HEADE
R_SIZE
,
&
output
))
{
if
(
!
taosMbsToUcs4
(
kv
->
value
,
kv
->
length
,
(
TdUcs4
*
)(
p
),
kv
->
length
*
TSDB_NCHA
R_SIZE
,
&
output
))
{
if
(
errno
==
E2BIG
)
{
if
(
errno
==
E2BIG
)
{
taosMemoryFree
(
p
);
taosMemoryFree
(
p
);
code
=
generateSyntaxErrMsg
(
msg
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pTagSchema
->
name
);
code
=
generateSyntaxErrMsg
(
msg
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pTagSchema
->
name
);
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
db5fe553
...
@@ -712,7 +712,6 @@ static EDealRes translateValueImpl(STranslateContext* pCxt, SValueNode* pVal, SD
...
@@ -712,7 +712,6 @@ static EDealRes translateValueImpl(STranslateContext* pCxt, SValueNode* pVal, SD
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
targetDt
.
bytes
+
1
);
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
targetDt
.
bytes
+
1
);
if
(
NULL
==
pVal
->
datum
.
p
)
{
if
(
NULL
==
pVal
->
datum
.
p
)
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_OUT_OF_MEMORY
);
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_OUT_OF_MEMORY
);
;
}
}
int32_t
len
=
0
;
int32_t
len
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录