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