今天从系统中找出的三个BUG

今天从系统中找出三个BUG,都与缓冲区溢出有关,真是教训深刻,这三个BUG一个是我过份信任协作程序传送过来的数据包(虽然是运行在本地机器上的自己编写的程序)而没有检查数据包的合法性,一个是同玿使用了不安全的sprintf函数而又偏偏给出了过小的缓冲区,另一个是另一位同事未检查函数返回值(或未仔细阅读函数编写者的注释)导致在函数失败的时候未成正确捕获。
寻找这三个BUG花了很多精力,总结教训:
  1. 永远不要相信任何数据来源,哪怕它来自自己公司编写的另一个协作程序
  2. 在团队中再次强调字符串函数的危险性,统一使用更安全的strsafe
  3. 在使用别人函数的时候一定要仔细阅读别人的注释,对一切返回值的函数进行返回值检查
  4. 编写函数给别人使用时,可以考虑用抛异常的方法替代返回错误值,强迫使用者检查函数是否成功
  5. 坚持在代码中尽量多的用assert、或编写自己的Log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值