summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/sgx/sigstruct.c
diff options
context:
space:
mode:
authorJarkko Sakkinen <jarkko@kernel.org>2021-11-15 10:35:15 -0800
committerDave Hansen <dave.hansen@linux.intel.com>2021-11-15 11:34:00 -0800
commit39f62536be2f6160bba7294b5208e240d34703c3 (patch)
tree7abd999bfe7a15e9cca997fb2ee0c43b6f4a22e7 /tools/testing/selftests/sgx/sigstruct.c
parent5064343fb155487362708bacc8c6ab9dc2c52bb8 (diff)
selftests/sgx: Assign source for each segment
Define source per segment so that enclave pages can be added from different sources, e.g. anonymous VMA for zero pages. In other words, add 'src' field to struct encl_segment, and assign it to 'encl->src' for pages inherited from the enclave binary. Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Acked-by: Dave Hansen <dave.hansen@linux.intel.com> Link: https://lkml.kernel.org/r/7850709c3089fe20e4bcecb8295ba87c54cc2b4a.1636997631.git.reinette.chatre@intel.com
Diffstat (limited to 'tools/testing/selftests/sgx/sigstruct.c')
-rw-r--r--tools/testing/selftests/sgx/sigstruct.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/testing/selftests/sgx/sigstruct.c b/tools/testing/selftests/sgx/sigstruct.c
index 92bbc5a15c39..202a96fd81bf 100644
--- a/tools/testing/selftests/sgx/sigstruct.c
+++ b/tools/testing/selftests/sgx/sigstruct.c
@@ -289,14 +289,14 @@ static bool mrenclave_eextend(EVP_MD_CTX *ctx, uint64_t offset,
static bool mrenclave_segment(EVP_MD_CTX *ctx, struct encl *encl,
struct encl_segment *seg)
{
- uint64_t end = seg->offset + seg->size;
+ uint64_t end = seg->size;
uint64_t offset;
- for (offset = seg->offset; offset < end; offset += PAGE_SIZE) {
- if (!mrenclave_eadd(ctx, offset, seg->flags))
+ for (offset = 0; offset < end; offset += PAGE_SIZE) {
+ if (!mrenclave_eadd(ctx, seg->offset + offset, seg->flags))
return false;
- if (!mrenclave_eextend(ctx, offset, encl->src + offset))
+ if (!mrenclave_eextend(ctx, seg->offset + offset, seg->src + offset))
return false;
}