程序员职场:3 大原则让你的编程之路越走越顺,新手来了解一下( 三 )

鉴于此 , 编程的世界里 , 从输入到输出同样需要处处设防 , 步步为营 。

1、对输入的不信任

(1)对空指针的检查

不只是输入 , 只有是使用到指针的地方 , 都应该先判断指针是否为NULL , 而内存释放后 , 应当将指针设置为NULL 。

【真实案例】:注册系统某段逻辑 , 正常使用情况下 , 都有对指针做检查 , 在某个错误分支 , 打印日志时 , 没检查就使用了该字符串;结果可正常运行 , 但当访问某个依赖模块超时走到改分支 , 触发bug , 导致coredump 。

(2)对数据长度的检查

使用字符串或某段buf , 特别是memcpy/strcpy时 , 需要尽量对数据长度做下检查和截断 。

【真实案例】:接手oauth系统后运行数月表现良好 , 突然有一天 , 发生了coredump , 经查 , 是某个业务不按规定请求包中填写了超长长度 , 导致memcpy时发生段错误 , 根本原因 , 还是没有做好长度检查 。

推荐阅读