[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen stable-4.2] forbid PV guest console reads



commit 29de283bdb3f547030012c4a4486e59e3d53fa27
Author:     Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
AuthorDate: Tue Oct 22 12:04:43 2013 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Oct 22 12:04:43 2013 +0200

    forbid PV guest console reads
    
    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>
    master commit: 65ba631bcb62c79eb33ebfde8a0471fd012c37a8
    master date: 2013-10-04 12:51:44 +0200
---
 xen/drivers/char/console.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index e10bed5..ef24f63 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -363,11 +363,14 @@ long do_console_io(int cmd, int count, 
XEN_GUEST_HANDLE(char) buffer)
     long rc;
     unsigned int idx, len;
 
-#ifndef VERBOSE
-    /* Only domain 0 may access the emergency console. */
     if ( current->domain->domain_id != 0 )
-        return -EPERM;
+#ifndef VERBOSE
+        /* Only domain 0 may access the emergency console. */
+#else
+        /* Only console writes are permitted for other than Dom0. */
+        if ( cmd != CONSOLEIO_write )
 #endif
+            return -EPERM;
 
     rc = xsm_console_io(current->domain, cmd);
     if ( rc )
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.2

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.