[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] x86/mm: Add mem access rights to NPT
>>> On 19.07.18 at 10:18, <aisaila@xxxxxxxxxxxxxxx> wrote: > On Mi, 2018-07-18 at 15:33 +0000, George Dunlap wrote: >> > On Jul 2, 2018, at 8:42 AM, Alexandru Isaila <aisaila@bitdefender.c >> > @@ -112,8 +117,37 @@ static unsigned long p2m_type_to_flags(const >> > struct p2m_domain *p2m, >> > flags |= _PAGE_PWT; >> > ASSERT(!level); >> > } >> > - return flags | P2M_BASE_FLAGS | _PAGE_PCD; >> > + flags |= P2M_BASE_FLAGS | _PAGE_PCD; >> > + break; >> > + } >> I think you want a blank line here. >> >> > >> > + switch ( access ) >> > + { >> > + case p2m_access_r: >> > + case p2m_access_w: >> > + flags |= _PAGE_NX_BIT; >> > + flags &= ~_PAGE_RW; >> > + break; >> > + case p2m_access_rw: >> > + flags |= _PAGE_NX_BIT; >> > + break; >> > + case p2m_access_n: >> > + case p2m_access_n2rwx: >> > + flags |= _PAGE_NX_BIT; >> > + flags &= ~_PAGE_RW; >> > + break; >> > + case p2m_access_rx: >> > + case p2m_access_wx: >> > + case p2m_access_rx2rw: >> > + flags &= ~(_PAGE_NX_BIT | _PAGE_RW); >> This looks like a mistake — this will unconditionally enable >> execution, even if the underlying p2m type forbids it. >> ept_p2m_type_to_flags() doesn’t do that. >> >> > >> > + break; >> > + case p2m_access_x: >> > + flags &= ~_PAGE_RW; >> > + break; >> > + case p2m_access_rwx: >> > + default: >> > + break; >> > } >> I think you want another blank line here too. >> >> Also, this doesn’t seem to capture the ‘r’ part of the equation — >> shouldn’t p2m_access_n end up with a not-present p2m entry? > > SVM dosen't explicitly provide a read access bit so we treat read and > write the same way. Read and write can't possibly be treated the same. You ought to use the present bit to deny read (really: any) access, as also implied by George's response. Also - please trim the quoting of your replies. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |