| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 #ifndef NACL_TRUSTED_BUT_NOT_TCB | 7 #ifndef NACL_TRUSTED_BUT_NOT_TCB |
| 8 #error("This file is not meant for use in the TCB") | 8 #error("This file is not meant for use in the TCB") |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 } while(0); | 154 } while(0); |
| 155 NaClValidatorStateDestroy(state); | 155 NaClValidatorStateDestroy(state); |
| 156 return validates; | 156 return validates; |
| 157 } | 157 } |
| 158 | 158 |
| 159 Bool NaClSegmentValidates(uint8_t* mbase, | 159 Bool NaClSegmentValidates(uint8_t* mbase, |
| 160 size_t size, | 160 size_t size, |
| 161 NaClPcAddress vbase) { | 161 NaClPcAddress vbase) { |
| 162 NaClCPUFeaturesX86 cpu_features; | 162 NaClCPUFeaturesX86 cpu_features; |
| 163 NaClValidationStatus status; | 163 NaClValidationStatus status; |
| 164 /* TODO(pasko): Validator initialization can be slow, make it run only once. |
| 165 */ |
| 166 const struct NaClValidatorInterface *validator = NaClCreateValidator(); |
| 164 | 167 |
| 165 /* check if NaCl thinks the given code segment is valid. */ | 168 /* check if NaCl thinks the given code segment is valid. */ |
| 166 NaClSetAllCPUFeatures(&cpu_features); | 169 NaClSetAllCPUFeatures(&cpu_features); |
| 167 status = NaCl_ApplyValidator_x86_64( | 170 status = validator->Validate( |
| 168 vbase, mbase, size, | 171 vbase, mbase, size, |
| 169 /* stubout_mode= */ FALSE, /* readonly_text= */ FALSE, &cpu_features, | 172 /* stubout_mode= */ FALSE, /* readonly_text= */ FALSE, &cpu_features, |
| 170 NULL); | 173 NULL); |
| 171 switch (status) { | 174 switch (status) { |
| 172 case NaClValidationSucceeded: | 175 case NaClValidationSucceeded: |
| 173 return TRUE; | 176 return TRUE; |
| 174 default: | 177 default: |
| 175 return FALSE; | 178 return FALSE; |
| 176 } | 179 } |
| 177 } | 180 } |
| OLD | NEW |