From 90b6e6c88983250742e1356d7178a6d4e683fa80 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Thu, 8 Mar 2012 16:40:05 +0000 Subject: Tools: After a helper maps a ring, yank it from the guest physmap This limits the ability of the guest to play around with its own rings, and DoS itself. Signed-off-by: Andres Lagar-Cavilla Acked-by: Ian Campbell Committed-by: Tim Deegan --- tools/tests/xen-access/xen-access.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tools/tests') diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen-access.c index fce886432a..b861aff323 100644 --- a/tools/tests/xen-access/xen-access.c +++ b/tools/tests/xen-access/xen-access.c @@ -269,6 +269,11 @@ xenaccess_t *xenaccess_init(xc_interface **xch_r, domid_t domain_id) (mem_event_sring_t *)xenaccess->mem_event.ring_page, PAGE_SIZE); + /* Now that the ring is set, remove it from the guest's physmap */ + if ( xc_domain_decrease_reservation_exact(xch, + xenaccess->mem_event.domain_id, 1, 0, &ring_pfn) ) + PERROR("Failed to remove ring from guest physmap"); + /* Get platform info */ xenaccess->platform_info = malloc(sizeof(xc_platform_info_t)); if ( xenaccess->platform_info == NULL ) -- cgit v1.2.3