OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 #include <map> | 6 #include <map> |
7 | 7 |
8 #include "sandbox/src/policy_low_level.h" | 8 #include "sandbox/src/policy_low_level.h" |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 mmap[it->service].push_back(it->rule); | 70 mmap[it->service].push_back(it->rule); |
71 } | 71 } |
72 | 72 |
73 PolicyBuffer* current_buffer = &policy_store_->data[0]; | 73 PolicyBuffer* current_buffer = &policy_store_->data[0]; |
74 char* buffer_end = reinterpret_cast<char*>(current_buffer) + | 74 char* buffer_end = reinterpret_cast<char*>(current_buffer) + |
75 policy_store_->data_size; | 75 policy_store_->data_size; |
76 size_t avail_size = policy_store_->data_size; | 76 size_t avail_size = policy_store_->data_size; |
77 | 77 |
78 for (Mmap::iterator it = mmap.begin(); it != mmap.end(); ++it) { | 78 for (Mmap::iterator it = mmap.begin(); it != mmap.end(); ++it) { |
79 uint32 service = (*it).first; | 79 uint32 service = (*it).first; |
80 if (service > kMaxServiceCount) { | 80 if (service >= kMaxServiceCount) { |
81 return false; | 81 return false; |
82 } | 82 } |
83 policy_store_->entry[service] = current_buffer; | 83 policy_store_->entry[service] = current_buffer; |
84 | 84 |
85 RuleList::iterator rules_it = (*it).second.begin(); | 85 RuleList::iterator rules_it = (*it).second.begin(); |
86 RuleList::iterator rules_it_end = (*it).second.end(); | 86 RuleList::iterator rules_it_end = (*it).second.end(); |
87 | 87 |
88 size_t svc_opcode_count = 0; | 88 size_t svc_opcode_count = 0; |
89 | 89 |
90 for (; rules_it != rules_it_end; ++rules_it) { | 90 for (; rules_it != rules_it_end; ++rules_it) { |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 | 339 |
340 return true; | 340 return true; |
341 } | 341 } |
342 | 342 |
343 PolicyRule::~PolicyRule() { | 343 PolicyRule::~PolicyRule() { |
344 delete [] reinterpret_cast<char*>(buffer_); | 344 delete [] reinterpret_cast<char*>(buffer_); |
345 delete opcode_factory_; | 345 delete opcode_factory_; |
346 } | 346 } |
347 | 347 |
348 } // namespace sandbox | 348 } // namespace sandbox |
OLD | NEW |