Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1395)

Unified Diff: src/trusted/service_runtime/nacl_syscall_common.c

Issue 15039022: Enable meta-based validation for shared libraries. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Prevent breakage Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/trusted/service_runtime/nacl_syscall_common.c
diff --git a/src/trusted/service_runtime/nacl_syscall_common.c b/src/trusted/service_runtime/nacl_syscall_common.c
index 916b10435e433734f315dad74f01ea642c7df8ed..4862935a83de109fdbeba8d53b8343b07c55c62b 100644
--- a/src/trusted/service_runtime/nacl_syscall_common.c
+++ b/src/trusted/service_runtime/nacl_syscall_common.c
@@ -1518,6 +1518,7 @@ int32_t NaClSysMmapIntern(struct NaClApp *nap,
*/
uintptr_t image_sys_addr;
NaClValidationStatus validator_status = NaClValidationFailed;
+ struct NaClValidationMetadata metadata;
int sys_ret; /* syscall return convention */
int ret;
@@ -1554,17 +1555,8 @@ int32_t NaClSysMmapIntern(struct NaClApp *nap,
goto cleanup;
}
- /*
- * TODO(bsy): when ncbray provides validation cache metadata
- * interface, plumb this through here. We need to extract the
- * descriptor metadata as a bag of bits via NACL_VTBL(NaClDesc,
- * ndp)->GetMetadata(...), possibly deserialize its contents
- * using a validation cache provided function into a struct
- * NaClValidationMetadata object, and pass it through here, as
- * well as destroying the metadata object etc.
- */
-
/* Ask validator / validation cache */
+ MetadataFromNaClDescCtor(&metadata, ndp);
validator_status = NACL_FI("MMAP_FORCE_MMAP_VALIDATION_FAIL",
(*nap->validator->
Validate)(usraddr,
@@ -1573,11 +1565,12 @@ int32_t NaClSysMmapIntern(struct NaClApp *nap,
0, /* stubout_mode: no */
1, /* readonly_text: yes */
nap->cpu_features,
- NULL, /* metadata */
+ &metadata,
nap->validation_cache),
NaClValidationFailed);
NaClLog(3, "NaClSysMmap: prot_exec, validator_status %d\n",
validator_status);
+ MetadataDtor(&metadata);
if (NaClValidationSucceeded == validator_status) {
/*

Powered by Google App Engine
This is Rietveld 408576698