Bugs

作者: professorLP | 来源:发表于2017-11-17 11:55 被阅读0次

    【日期】:2004-08-17

    【问题】:当解码 Q.931 信令时无限循环

    【原因】:当在Q.931信令中发现一个未知的元素id时,我们试图通过读取它的长度来跳过它,并且将位置指针迁移几个字节。但是,在这个例子中的长度是零,导致我们反复跳过相同的元素id。

    【怎么发现的】:在解码一个 Ethereal 从 Nortel 追踪到的安装信息时发现了这个问题。他们的信息是 1016 字节长度(包含大量快速启动元素),但我们的 MSG_MAX_LEN 是 1000。通常我们会收到一条来自 common/Communication.cxx 的信息,但现在,当直接输入需要解析的数据时,数组末端内存访问越界,其恰好是 0,暴露了这个问题。

    为了找到它,我仅仅在 9931 解码中添加一些打印输出。但很幸运数据恰好是零。

    【修复】:如果长度是零,设置为 1。这方式总是行得通。

    【在哪些文件修改了】:

    callh/q931_msg.cxx

    callh/q931_msg.cxx

    【我导致的】:是的

    【解决Bug的时间】:1小时

    【教训】:信任收到信息中获得的数据。不仅仅是产生大量可能导致问题的数据。显示长度为 0 也同样不好。

    【日期】:2017-11-17

    【问题】:开启项目gradle报错

    2017年11月17日11:55:08

    【原因】:把 google() 这个仓库删了,版本低了不能用这个仓库。

    【怎么发现的】:群里大佬指点。

    【修复】:删除google()

    【在哪些文件修改了】:

    app:build.gradle

    【我导致的】:不是

    【解决Bug的时间】:半小时

    【教训】:自己重启计算机浪费了一部分时间,有系统性问题超过20分钟可以抛给群里咨询,系统性问题一般是配置性的问题。

    相关文章

      网友评论

        本文标题:Bugs

        本文链接:https://www.haomeiwen.com/subject/scadvxtx.html