|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] xen/xsm: forbid PV guest console reads
On Mon, Sep 30, 2013 at 01:29:00PM -0400, Daniel De Graaf wrote:
> On 09/30/2013 12:10 PM, Jan Beulich wrote:
> >>>>On 30.09.13 at 17:48, Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> wrote:
> >>When the hypervisor was compiled in debug mode (with VERBOSE defined),
> >>PV guests incorrectly had access to both read and write to the console.
> >>Change this to only allow write access; since such writes were limited
> >>by log levels in 48d50de8e0, remove the dependency on VERBOSE
> >>completely.
> >
> >I disagree, and iirc I disagreed already when you tried to drop the
> >dependency on VERBOSE with that earlier patch.
> >
> >>Reported-by: Jan Beulich <JBeulich@xxxxxxxx>
> >>Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
> >>---
> >>
> >>Alternatively, if controlling writes with VERBOSE is still desired, the
> >>ifdef VERBOSE can be retained surrounding the if() with the following
> >>commit message:
> >>
> >>
> >
> >That's what I'd want to see go in.
> >
> >Jan
>
> This patch retains the existing behavior where only HVM guests can use
> the console for output, and only via the 0xE9 I/O port. With Konrad's
> Linux patch, this means that xen_raw_console_write in non-dom0 will
> produce output only on Xen <= 4.3 (which returns -ENOSYS rather than
> -EPERM, as this code does).
I was under the impression that what we wanted is:
- normal PV guests can do console_write
- HVM guests can do console_write
- priv guests (irregardless if they are HVM or PV) can do console_write
_and_ console_read.
Which I think the patch below still allows right?
>
> ------------------------8<----------------------------------------------
>
> The CONSOLEIO_read operation was incorrectly allowed to PV guests if the
> hypervisor was compiled in debug mode (with VERBOSE defined).
>
> Reported-by: Jan Beulich <JBeulich@xxxxxxxx>
> Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
> ---
> xen/include/xsm/dummy.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
> index 2abf018..b1edd29 100644
> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -233,10 +233,10 @@ static XSM_INLINE int xsm_console_io(XSM_DEFAULT_ARG
> struct domain *d, int cmd)
> {
> XSM_ASSERT_ACTION(XSM_OTHER);
> #ifdef VERBOSE
> - return xsm_default_action(XSM_HOOK, current->domain, NULL);
> -#else
> - return xsm_default_action(XSM_PRIV, current->domain, NULL);
> + if ( cmd == CONSOLEIO_write )
> + return xsm_default_action(XSM_HOOK, d, NULL);
> #endif
> + return xsm_default_action(XSM_PRIV, d, NULL);
> }
> static XSM_INLINE int xsm_profile(XSM_DEFAULT_ARG struct domain *d, int op)
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |