> > Disable execution bit on mapping improving security. > > MmMapIoSpaceEx is available only in Windows 10 thus > the macros are used. > > Based on a patch by Sandy Stutsman <sstutsma@xxxxxxxxxx> > > Signed-off-by: Sameeh Jubran <sameeh@xxxxxxxxxx> Acked-by: Frediano Ziglio <fziglio@xxxxxxxxxx> I'll wait couple if days, there were different comments on this patch. Frediano > --- > qxldod/QxlDod.cpp | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp > index accf895..798b2f0 100755 > --- a/qxldod/QxlDod.cpp > +++ b/qxldod/QxlDod.cpp > @@ -2009,17 +2009,28 @@ MapFrameBuffer( > return STATUS_INVALID_PARAMETER; > } > > +#if NTDDI_VERSION >= NTDDI_WIN10 > + *VirtualAddress = MmMapIoSpaceEx(PhysicalAddress, > + Length, > + PAGE_WRITECOMBINE | PAGE_READWRITE); > +#else > *VirtualAddress = MmMapIoSpace(PhysicalAddress, > Length, > MmWriteCombined); > +#endif > if (*VirtualAddress == NULL) > { > // The underlying call to MmMapIoSpace failed. This may be because, > MmWriteCombined > // isn't supported, so try again with MmNonCached > - > +#if NTDDI_VERSION >= NTDDI_WIN10 > + *VirtualAddress = MmMapIoSpaceEx(PhysicalAddress, > + Length, > + (PAGE_NOCACHE | PAGE_READWRITE)); > +#else > *VirtualAddress = MmMapIoSpace(PhysicalAddress, > Length, > MmNonCached); > +#endif > if (*VirtualAddress == NULL) > { > DbgPrint(TRACE_LEVEL_ERROR, ("MmMapIoSpace returned a NULL > buffer when trying to allocate %lu bytes", Length)); _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel