| Index: chrome/nacl/nacl_validation_query.cc
|
| diff --git a/chrome/nacl/nacl_validation_query.cc b/chrome/nacl/nacl_validation_query.cc
|
| index 37d9b7866e51fa0c356e4a4871b1a7f95f926b2e..c62c3653aa846f5a0dc95827ad46a1c1fc91d91c 100644
|
| --- a/chrome/nacl/nacl_validation_query.cc
|
| +++ b/chrome/nacl/nacl_validation_query.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/logging.h"
|
| #include "crypto/nss_util.h"
|
| #include "chrome/nacl/nacl_validation_db.h"
|
| +#include "native_client/src/trusted/validator/nacl_file_info.h"
|
| #include "native_client/src/trusted/validator/validation_cache.h"
|
|
|
| NaClValidationQueryContext::NaClValidationQueryContext(
|
| @@ -29,6 +30,13 @@ NaClValidationQuery* NaClValidationQueryContext::CreateQuery() {
|
| return query;
|
| }
|
|
|
| +bool NaClValidationQueryContext::ResolveFileToken(
|
| + struct NaClFileToken *file_token,
|
| + int32* fd,
|
| + std::string* path) {
|
| + return db_->ResolveFileToken(file_token, fd, path);
|
| +}
|
| +
|
| NaClValidationQuery::NaClValidationQuery(NaClValidationDB* db,
|
| const std::string& profile_key)
|
| : state_(READY),
|
| @@ -127,6 +135,24 @@ static void DestroyQuery(void* query) {
|
| delete static_cast<NaClValidationQuery*>(query);
|
| }
|
|
|
| +static int ResolveFileToken(void* handle, struct NaClFileToken* file_token,
|
| + int32* fd, char** file_path,
|
| + uint32 *file_path_length) {
|
| + std::string path;
|
| + *file_path = NULL;
|
| + *file_path_length = 0;
|
| + bool ok = static_cast<NaClValidationQueryContext*>(handle)->
|
| + ResolveFileToken(file_token, fd, &path);
|
| + if (ok) {
|
| + *file_path = static_cast<char *>(malloc(path.length() + 1));
|
| + CHECK(*file_path);
|
| + memcpy(*file_path, path.data(), path.length());
|
| + (*file_path)[path.length()] = 0;
|
| + *file_path_length = static_cast<uint32>(path.length());
|
| + }
|
| + return ok;
|
| +}
|
| +
|
| struct NaClValidationCache* CreateValidationCache(
|
| NaClValidationDB* db, const std::string& profile_key,
|
| const std::string& nacl_version) {
|
| @@ -140,5 +166,6 @@ struct NaClValidationCache* CreateValidationCache(
|
| cache->QueryKnownToValidate = QueryKnownToValidate;
|
| cache->SetKnownToValidate = SetKnownToValidate;
|
| cache->DestroyQuery = DestroyQuery;
|
| + cache->ResolveFileToken = ResolveFileToken;
|
| return cache;
|
| }
|
|
|