首页 > Windows开发 > 详细

rapidjson 遇到的吭

时间:2015-04-24 13:58:42      阅读:367      评论:0      收藏:0      [点我收藏+]

document.h

以下代码是非常危险的.
 1     Member* FindMember(const Ch* name) {
 2         RAPIDJSON_ASSERT(name);
 3         RAPIDJSON_ASSERT(IsObject());
 4 
 5         Object& o = data_.o;
 6         for (Member* member = o.members; member != data_.o.members + data_.o.size; ++member)
 7             if (name[member->name.data_.s.length] == \0 && memcmp(member->name.data_.s.str, name, member->name.data_.s.length * sizeof(Ch)) == 0)
 8                 return member;
 9 
10         return 0;
11     }

 

技术分享
假定传入的name是 "11"
而json的每一个成员关键字的长度都大于 11
那么在这里 name[member->name.data_.s.length]就相当于访问越界.  
技术分享

rapidjson 遇到的吭

原文:http://www.cnblogs.com/kolonse/p/4453189.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!