amfext的一个bug

昨天遇到一个amfext会core的问题,一开始以为是自己的php代码写的有问题,后来仔细看了一下core的地点,结果发现

似乎是amfext的一个bug,它在MAKE_STD_ZVAL之后没有对zval的type进行初始化,而接下来的操作中立即使用了这个

type,如果type=5则调用HASH_OF,一般情况下这句是不会有错的,因为它实际上是从某个数组中取数据出来,并且

这个结果也不会修改(不知道这里为什么要这么写,估计是半成品,为某个目的预留的),因此即使错了也问题不大。

但是在特殊情况下,比如昨天core的情况下,数组的index实在太大了,应该有10亿左右,这个时候可能访问到了某个

保护内在地址,因此才会直接segement fault了。并且在我的机器上运行那段代码是不会core的,只有在同事的机器上会,

并且只要对代码进行任意修改,比如加日志都不会core了,可能就是因为修改了内存加载的地址,导致加载了那个很大的index。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值