Chinaunix首页 | 论坛 | 博客
  • 博客访问: 573688
  • 博文数量: 493
  • 博客积分: 2891
  • 博客等级: 少校
  • 技术积分: 4960
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 17:11
文章分类

全部博文(493)

文章存档

2010年(493)

分类:

2010-05-12 16:27:31

答案:
1、 pData = (MessageData *)(pMessageMap+ pContext-> m_ulTaskId);
此行没有对pContext-> m_ulTaskId进行判断,如果pContext-> m_ulTaskId大于pContext-> m_ulMessageMapSize,则可能造成数组访问越界,应该改为:
If(pContext-> m_ulTaskId > pContext-> m_ulMessageMapSize)
{
  Return E_FAIL;
}
pData = (MessageData *)(pMessageMap+ pContext-> m_ulTaskId);
2、 Hr = pContext-> m_pCallback->HandleMessage(pData);语句操作前,没有对pContext-> m_pCallback指针做非空判断
应该改为:
If(NULL == pContext-> m_pCallback)
{
  Return E_FAIL;
}
Hr = pContext-> m_pCallback->HandleMessage(pData);
阅读(231) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~