From: Keir Fraser Date: Wed, 19 Mar 2008 10:15:01 +0000 (+0000) Subject: x86: Avoid dereference of 'struct page_info' for invalid MFNs. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14247^2~25 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5a8637ac0e6cdfd76e731b7564ca6ed5074b269f;p=xen.git x86: Avoid dereference of 'struct page_info' for invalid MFNs. Introduced by my changes to Samuel's transitive-privilege patch. Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 5f8e2a8b78..bd92ec2f32 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -645,7 +645,7 @@ get_page_from_l1e( struct page_info *page = mfn_to_page(mfn); uint32_t l1f = l1e_get_flags(l1e); struct vcpu *curr = current; - struct domain *owner = page_get_owner(page); + struct domain *owner; int okay; if ( !(l1f & _PAGE_PRESENT) ) @@ -680,6 +680,7 @@ get_page_from_l1e( * until pvfb supports granted mappings. At that time this minor hack * can go away. */ + owner = page_get_owner(page); if ( unlikely(d != owner) && (owner != NULL) && (d != curr->domain) && IS_PRIV_FOR(d, owner) ) d = owner;