| Index: src/trusted/service_runtime/elf_util.c
|
| diff --git a/src/trusted/service_runtime/elf_util.c b/src/trusted/service_runtime/elf_util.c
|
| index 7236d11d7ca5006e565a3b1a084084c71683f972..f88e246771f9811920c46983cff5b2b6665ca850 100644
|
| --- a/src/trusted/service_runtime/elf_util.c
|
| +++ b/src/trusted/service_runtime/elf_util.c
|
| @@ -32,6 +32,7 @@
|
| #include "native_client/src/trusted/service_runtime/nacl_text.h"
|
| #include "native_client/src/trusted/service_runtime/nacl_valgrind_hooks.h"
|
| #include "native_client/src/trusted/service_runtime/sel_memory.h"
|
| +#include "native_client/src/trusted/validator/validation_metadata.h"
|
|
|
| /* private */
|
| struct NaClElfImage {
|
| @@ -623,9 +624,11 @@ NaClErrorCode NaClElfImageLoad(struct NaClElfImage *image,
|
| }
|
|
|
|
|
| -NaClErrorCode NaClElfImageLoadDynamically(struct NaClElfImage *image,
|
| - struct NaClApp *nap,
|
| - struct Gio *gfile) {
|
| +NaClErrorCode NaClElfImageLoadDynamically(
|
| + struct NaClElfImage *image,
|
| + struct NaClApp *nap,
|
| + struct Gio *gfile,
|
| + struct NaClValidationMetadata *metadata) {
|
| int segnum;
|
| for (segnum = 0; segnum < image->ehdr.e_phnum; ++segnum) {
|
| const Elf_Phdr *php = &image->phdrs[segnum];
|
| @@ -678,8 +681,11 @@ NaClErrorCode NaClElfImageLoadDynamically(struct NaClElfImage *image,
|
| "failed to read code segment\n");
|
| return LOAD_READ_ERROR;
|
| }
|
| + if (NULL != metadata) {
|
| + metadata->code_offset = offset;
|
| + }
|
| result = NaClTextDyncodeCreate(nap, (uint32_t) vaddr,
|
| - code_copy, (uint32_t) filesz);
|
| + code_copy, (uint32_t) filesz, metadata);
|
| free(code_copy);
|
| if (0 != result) {
|
| NaClLog(LOG_ERROR, "NaClElfImageLoadDynamically: "
|
|
|