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
|