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

[Xen-devel] [PATCH] Fix X11 authorization problem when VMX domain use SDL


  • To: Xen Mailing List <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Hiromichi Itou <ito@xxxxxxxx>
  • Date: Tue, 27 Dec 2005 20:21:07 +0900
  • Delivery-date: Tue, 27 Dec 2005 11:25:08 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi,

This patch fixes an X11 authorization problem when VMX domain use SDL.

In my environment, the VMX domain that used SDL did not operate.
Because xend has not passed to qemu-dm a necessary environment variable for
X11 authorization.

 I was using xhost command as workaround until I made this patch.
ex.
xhost local: (this command add non-network local connections to access control list)

But this workaround is not good for security.

---
Begi.net (http://Begi.net)
Director of Engineering Department   
Hiromichi Itou (ito@xxxxxxxx)

diff -r 829517be689f tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Fri Dec 23 15:42:46 2005
+++ b/tools/python/xen/xend/image.py    Tue Dec 27 19:21:19 2005
@@ -194,6 +194,7 @@
         if not self.device_model:
             raise VmError("vmx: missing device model")
         self.display = sxp.child_value(imageConfig, 'display')
+        self.xauthority = sxp.child_value(imageConfig, 'xauthority')

         self.vm.storeVm(("image/dmargs", " ".join(self.dmargs)),
                         ("image/device-model", self.device_model),
@@ -340,6 +341,8 @@
         env = dict(os.environ)
         if self.display:
             env['DISPLAY'] = self.display
+        if self.xauthority:
+            env['XAUTHORITY'] = self.xauthority
log.info("spawning device models: %s %s", self.device_model, args) self.pid = os.spawnve(os.P_NOWAIT, self.device_model, args, env)
         log.info("device model pid: %d", self.pid)
diff -r 829517be689f tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Fri Dec 23 15:42:46 2005
+++ b/tools/python/xen/xm/create.py     Tue Dec 27 19:21:19 2005
@@ -387,6 +387,10 @@
 gopts.var('display', val='DISPLAY',
           fn=set_value, default=None,
           use="X11 display to use")
+
+gopts.var('xauthority', val='XAUTHORITY',
+          fn=set_value, default=None,
+          use="X11 Authority to use")


 def err(msg):
@@ -526,7 +530,8 @@
     """
     args = [ 'device_model', 'vcpus', 'cdrom', 'boot', 'fda', 'fdb',
'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'audio',
-             'vnc', 'vncviewer', 'sdl', 'display', 'ne2000', 'lapic']
+             'vnc', 'vncviewer', 'sdl', 'display', 'ne2000', 'lapic' ,
+            'xauthority' ]
     for a in args:
         if (vals.__dict__[a]):
             config_image.append([a, vals.__dict__[a]])
@@ -801,6 +806,9 @@
     if not gopts.vals.display:
         gopts.vals.display = os.getenv("DISPLAY")

+    if not gopts.vals.xauthority:
+        gopts.vals.xauthority = os.getenv("XAUTHORITY")
+
     # Process remaining args as config variables.
     for arg in args:
         if '=' in arg:


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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