From 134e1b9398792043546a3a986eb1fce9f18104f8 Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Thu, 16 Mar 2017 01:22:55 +0800 Subject: [PATCH 1/4] Created crash analysis - 1 (markdown) --- crash-analysis---1.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 crash-analysis---1.md diff --git a/crash-analysis---1.md b/crash-analysis---1.md new file mode 100644 index 0000000..1c8c34a --- /dev/null +++ b/crash-analysis---1.md @@ -0,0 +1,15 @@ +# 崩溃分析 + +bug: + +在Linux平台,核心服务(tp_core)版本2.0.0.1有时会发生崩溃,经过分析core dump后,有以下结果: + +> ssh会话中,接收到服务器发回的数据时,核心服务试图解析数据,将其中主机名部分替换成远程主机IP,以便xShell/SecureCRT等软件在其标签页上显示远程主机的IP地址,而不是teleport服务器的IP地址。 +> +> 如果服务端返回的数据过长,或者程序计算有误,导致临时分配内存失败(返回空指针),但是后续操作并未检查此情况,仍然向此空指针写入数据,导致非法内存访问而崩溃。 + +改进方法: + + - 检查内存分配是否成功; + - 仅对ssh命令行数据进行解析,忽略scp/sftp下载数据; + - 限定要分析的数据长度,操作一定阀值的数据不进行解析; \ No newline at end of file From e3dd028171123f637e12b9d85d762a24965dbe0d Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Thu, 16 Mar 2017 01:23:44 +0800 Subject: [PATCH 2/4] Updated _Sidebar (markdown) --- _Sidebar.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_Sidebar.md b/_Sidebar.md index 4b87122..ce01e1e 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -5,3 +5,7 @@ JSON-RPC --- - [如何生成 Core Dump](https://github.com/eomsoft/teleport/wiki/CORE-DUMP) + +--- + + - [崩溃分析](https://github.com/eomsoft/teleport/wiki/crash-analysis---1) \ No newline at end of file From 7f7796c4122a5d1930ebdad3d0c4ed73b6c1f88f Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Thu, 16 Mar 2017 01:39:50 +0800 Subject: [PATCH 3/4] Destroyed crash analysis 1 (markdown) --- crash-analysis---1.md | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 crash-analysis---1.md diff --git a/crash-analysis---1.md b/crash-analysis---1.md deleted file mode 100644 index 1c8c34a..0000000 --- a/crash-analysis---1.md +++ /dev/null @@ -1,15 +0,0 @@ -# 崩溃分析 - -bug: - -在Linux平台,核心服务(tp_core)版本2.0.0.1有时会发生崩溃,经过分析core dump后,有以下结果: - -> ssh会话中,接收到服务器发回的数据时,核心服务试图解析数据,将其中主机名部分替换成远程主机IP,以便xShell/SecureCRT等软件在其标签页上显示远程主机的IP地址,而不是teleport服务器的IP地址。 -> -> 如果服务端返回的数据过长,或者程序计算有误,导致临时分配内存失败(返回空指针),但是后续操作并未检查此情况,仍然向此空指针写入数据,导致非法内存访问而崩溃。 - -改进方法: - - - 检查内存分配是否成功; - - 仅对ssh命令行数据进行解析,忽略scp/sftp下载数据; - - 限定要分析的数据长度,操作一定阀值的数据不进行解析; \ No newline at end of file From a4b7b1266b70f2b6040f87a3e2884ba586e80b44 Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Thu, 16 Mar 2017 01:40:23 +0800 Subject: [PATCH 4/4] Updated _Sidebar (markdown) --- _Sidebar.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/_Sidebar.md b/_Sidebar.md index ce01e1e..4b87122 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -5,7 +5,3 @@ JSON-RPC --- - [如何生成 Core Dump](https://github.com/eomsoft/teleport/wiki/CORE-DUMP) - ---- - - - [崩溃分析](https://github.com/eomsoft/teleport/wiki/crash-analysis---1) \ No newline at end of file