人外有人,我们还需要努力啊。不过现在既然发现了这个bug,那就赶紧给它解决吧。”
几个人顿时开始来修复漏洞,首先拿到调用栈信息之后,一会儿时间就很容易的追查到了根源。
钱志海一行人看着这个,都是有些面面相觑。
“怎么是这个……”
这是当年羽然科技公司实现时的疏忽:在某个函数中,他们声明了一个局部变量,这个变量和同一命名空间的另一个变量名字极为相似,但命名风格(首字母是否大写之类)和其他代码不太一致。
当时他们是为了规避不同作用域的命名冲突才这样命名的。
但到了后面,他们仍然习惯性的用了“正常”的命名,也可能是选错了编辑器自动提示选项。
这就相当于丢开局部变量,用了命名空间的外部变量;但从上下文看,这里就不应该碰外部那个同名变量。
用伪码表示大概是这样:
csnecss{
packanaites=null
voidfunna1{
itialpackanaites
packanaites=arg
other
}
strgfunna2(){
packanaites=extractpure
dosth
result=titefro1
dosth
returnresult
}
}
从那里分析,在1处,本应该是从已经解包过的pa
第三十四章 辞职前(2/5)