Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
54d6ed46
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
未验证
提交
54d6ed46
编写于
5月 21, 2022
作者:
S
Shengliang Guan
提交者:
GitHub
5月 21, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12817 from taosdata/fix/valgrind
fix: memory leak while record history in shell
上级
7b0a011e
133a963c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
1 deletion
+15
-1
tools/shell/src/shellEngine.c
tools/shell/src/shellEngine.c
+15
-1
未找到文件。
tools/shell/src/shellEngine.c
浏览文件 @
54d6ed46
...
...
@@ -742,6 +742,7 @@ void shellReadHistory() {
int32_t
read_size
=
0
;
while
((
read_size
=
taosGetLineFile
(
pFile
,
&
line
))
!=
-
1
)
{
line
[
read_size
-
1
]
=
'\0'
;
taosMemoryFree
(
pHistory
->
hist
[
pHistory
->
hend
]);
pHistory
->
hist
[
pHistory
->
hend
]
=
strdup
(
line
);
pHistory
->
hend
=
(
pHistory
->
hend
+
1
)
%
SHELL_MAX_HISTORY_SIZE
;
...
...
@@ -763,7 +764,8 @@ void shellWriteHistory() {
for
(
int32_t
i
=
pHistory
->
hstart
;
i
!=
pHistory
->
hend
;)
{
if
(
pHistory
->
hist
[
i
]
!=
NULL
)
{
taosFprintfFile
(
pFile
,
"%s
\n
"
,
pHistory
->
hist
[
i
]);
taosMemoryFreeClear
(
pHistory
->
hist
[
i
]);
taosMemoryFree
(
pHistory
->
hist
[
i
]);
pHistory
->
hist
[
i
]
=
NULL
;
}
i
=
(
i
+
1
)
%
SHELL_MAX_HISTORY_SIZE
;
}
...
...
@@ -771,6 +773,16 @@ void shellWriteHistory() {
taosCloseFile
(
&
pFile
);
}
void
shellCleanupHistory
()
{
SShellHistory
*
pHistory
=
&
shell
.
history
;
for
(
int32_t
i
=
0
;
i
<
SHELL_MAX_HISTORY_SIZE
;
++
i
)
{
if
(
pHistory
->
hist
[
i
]
!=
NULL
)
{
taosMemoryFree
(
pHistory
->
hist
[
i
]);
pHistory
->
hist
[
i
]
=
NULL
;
}
}
}
void
shellPrintError
(
TAOS_RES
*
tres
,
int64_t
st
)
{
int64_t
et
=
taosGetTimestampUs
();
fprintf
(
stderr
,
"
\n
DB error: %s (%.6fs)
\n
"
,
taos_errstr
(
tres
),
(
et
-
st
)
/
1E6
);
...
...
@@ -971,6 +983,7 @@ int32_t shellExecute() {
taos_close
(
shell
.
conn
);
shellWriteHistory
();
shellCleanupHistory
();
return
0
;
}
...
...
@@ -996,5 +1009,6 @@ int32_t shellExecute() {
taosThreadClear
(
&
shell
.
pid
);
}
shellCleanupHistory
();
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录