码迷,mamicode.com
首页 > Windows程序 > 详细

rapidjson 遇到的吭

时间:2015-04-24 13:59:40      阅读:239      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!