pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/sysutils/xentools33 Apply changeset 18434 from upstrea...
details: https://anonhg.NetBSD.org/pkgsrc/rev/3274f8c361c1
branches: trunk
changeset: 548100:3274f8c361c1
user: cegger <cegger%pkgsrc.org@localhost>
date: Wed Oct 08 19:13:41 2008 +0000
description:
Apply changeset 18434 from upstream xen-3.3-testing tree.
This fixes security issue http://secunia.com/advisories/32064/
diffstat:
sysutils/xentools33/Makefile | 4 +-
sysutils/xentools33/distinfo | 6 +-
sysutils/xentools33/patches/patch-ga | 111 +++++++++++++++++++++++++
sysutils/xentools33/patches/patch-gb | 13 ++
sysutils/xentools33/patches/patch-gc | 152 +++++++++++++++++++++++++++++++++++
sysutils/xentools33/patches/patch-gd | 60 +++++++++++++
6 files changed, 343 insertions(+), 3 deletions(-)
diffs (truncated from 385 to 300 lines):
diff -r e53fc74d2223 -r 3274f8c361c1 sysutils/xentools33/Makefile
--- a/sysutils/xentools33/Makefile Wed Oct 08 18:32:06 2008 +0000
+++ b/sysutils/xentools33/Makefile Wed Oct 08 19:13:41 2008 +0000
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile,v 1.9 2008/09/30 15:08:34 joerg Exp $
+# $NetBSD: Makefile,v 1.10 2008/10/08 19:13:41 cegger Exp $
#
VERSION= 3.3.0
DISTNAME= xen-${VERSION}
PKGNAME= xentools33-${VERSION}
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= sysutils
MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
EXTRACT_SUFX= .tar.gz
diff -r e53fc74d2223 -r 3274f8c361c1 sysutils/xentools33/distinfo
--- a/sysutils/xentools33/distinfo Wed Oct 08 18:32:06 2008 +0000
+++ b/sysutils/xentools33/distinfo Wed Oct 08 19:13:41 2008 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.12 2008/09/30 15:08:34 joerg Exp $
+$NetBSD: distinfo,v 1.13 2008/10/08 19:13:41 cegger Exp $
SHA1 (xen-3.3.0.tar.gz) = b6365864eeb5125e0f66a056c4c72816e1789358
RMD160 (xen-3.3.0.tar.gz) = c98c08617e302ef4004d17cb0ba161d0ed7af59c
@@ -49,3 +49,7 @@
SHA1 (patch-fc) = 37c9b0897182de93a01f9620ef6346ef68157770
SHA1 (patch-fd) = cb4741bf33050d72cfbcd2eff4a8632d976de643
SHA1 (patch-fe) = 85d42672766fe8ce2dc7f745938722710c6ee5a3
+SHA1 (patch-ga) = c7a32f0feefd9b00993e64e406ad2914e6737fb6
+SHA1 (patch-gb) = 3018ec50cdfcc73effbd53b19387bbed9ce46f9c
+SHA1 (patch-gc) = 26a750ca14bcaa33b3f63c16104d2acfae764c96
+SHA1 (patch-gd) = 78e9bcba7dbd2dbd520c015947240b7e514abf8c
diff -r e53fc74d2223 -r 3274f8c361c1 sysutils/xentools33/patches/patch-ga
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/xentools33/patches/patch-ga Wed Oct 08 19:13:41 2008 +0000
@@ -0,0 +1,111 @@
+$NetBSD: patch-ga,v 1.1 2008/10/08 19:13:41 cegger Exp $
+
+--- python/xen/xend/XendDomainInfo.py.orig 2008-08-22 09:49:08.000000000 +0000
++++ python/xen/xend/XendDomainInfo.py
+@@ -455,8 +455,8 @@ class XendDomainInfo:
+ try:
+ self._constructDomain()
+ self._storeVmDetails()
+- self._createDevices()
+ self._createChannels()
++ self._createDevices()
+ self._storeDomDetails()
+ self._endRestore()
+ except:
+@@ -1232,31 +1232,6 @@ class XendDomainInfo:
+ def permissionsVm(self, *args):
+ return xstransact.SetPermissions(self.vmpath, *args)
+
+-
+- def _readVmTxn(self, transaction, *args):
+- paths = map(lambda x: self.vmpath + "/" + x, args)
+- return transaction.read(*paths)
+-
+- def _writeVmTxn(self, transaction, *args):
+- paths = map(lambda x: self.vmpath + "/" + x, args)
+- return transaction.write(*paths)
+-
+- def _removeVmTxn(self, transaction, *args):
+- paths = map(lambda x: self.vmpath + "/" + x, args)
+- return transaction.remove(*paths)
+-
+- def _gatherVmTxn(self, transaction, *args):
+- paths = map(lambda x: self.vmpath + "/" + x, args)
+- return transaction.gather(paths)
+-
+- def storeVmTxn(self, transaction, *args):
+- paths = map(lambda x: self.vmpath + "/" + x, args)
+- return transaction.store(*paths)
+-
+- def permissionsVmTxn(self, transaction, *args):
+- paths = map(lambda x: self.vmpath + "/" + x, args)
+- return transaction.set_permissions(*paths)
+-
+ #
+ # Function to update xenstore /dom/*
+ #
+@@ -1304,8 +1279,11 @@ class XendDomainInfo:
+ def _recreateDomFunc(self, t):
+ t.remove()
+ t.mkdir()
+- t.set_permissions({'dom' : self.domid})
++ t.set_permissions({'dom' : self.domid, 'read' : True})
+ t.write('vm', self.vmpath)
++ for i in [ 'device', 'control', 'error' ]:
++ t.mkdir(i)
++ t.set_permissions(i, {'dom' : self.domid})
+
+ def _storeDomDetails(self):
+ to_store = {
+@@ -2390,11 +2368,11 @@ class XendDomainInfo:
+
+ paths = self._prepare_phantom_paths()
+
+- self._cleanupVm()
+ if self.dompath is not None:
+ self.destroyDomain()
+
+ self._cleanup_phantom_devs(paths)
++ self._cleanupVm()
+
+ if "transient" in self.info["other_config"] \
+ and bool(self.info["other_config"]["transient"]):
+@@ -2731,7 +2709,6 @@ class XendDomainInfo:
+ self._writeVm(to_store)
+ self._setVmPermissions()
+
+-
+ def _setVmPermissions(self):
+ """Allow the guest domain to read its UUID. We don't allow it to
+ access any other entry, for security."""
+@@ -2750,7 +2727,7 @@ class XendDomainInfo:
+ log.warn("".join(traceback.format_stack()))
+ return self._stateGet()
+ else:
+- raise AttributeError()
++ raise AttributeError(name)
+
+ def __setattr__(self, name, value):
+ if name == "state":
+@@ -2864,12 +2841,6 @@ class XendDomainInfo:
+ ignore_devices = ignore_store,
+ legacy_only = legacy_only)
+
+- #if not ignore_store and self.dompath:
+- # vnc_port = self.readDom('console/vnc-port')
+- # if vnc_port is not None:
+- # result.append(['device',
+- # ['console', ['vnc-port', str(vnc_port)]]])
+-
+ return result
+
+ # Xen API
+@@ -3135,7 +3106,7 @@ class XendDomainInfo:
+ if not config.has_key('device'):
+ devid = config.get('id')
+ if devid != None:
+- config['device'] = 'eth%d' % devid
++ config['device'] = 'eth%s' % devid
+ else:
+ config['device'] = ''
+
diff -r e53fc74d2223 -r 3274f8c361c1 sysutils/xentools33/patches/patch-gb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/xentools33/patches/patch-gb Wed Oct 08 19:13:41 2008 +0000
@@ -0,0 +1,13 @@
+$NetBSD: patch-gb,v 1.1 2008/10/08 19:13:41 cegger Exp $
+
+--- python/xen/xend/image.py.orig 2008-08-22 09:49:08.000000000 +0000
++++ python/xen/xend/image.py
+@@ -502,7 +502,7 @@ class ImageHandler:
+ if fifo_fd >= 0:
+ self._openSentinel(sentinel_path_fifo)
+ os.close(fifo_fd)
+- self.pid = self.vm.gatherDom(('image/device-model-pid', int))
++ self.pid = self.vm._gatherDom(('image/device-model-pid', int))
+ log.debug("%s device model rediscovered, pid %s sentinel fifo %s",
+ name, self.pid, sentinel_path_fifo)
+ self.sentinel_thread = thread.start_new_thread(self._sentinel_watch,())
diff -r e53fc74d2223 -r 3274f8c361c1 sysutils/xentools33/patches/patch-gc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/xentools33/patches/patch-gc Wed Oct 08 19:13:41 2008 +0000
@@ -0,0 +1,152 @@
+$NetBSD: patch-gc,v 1.1 2008/10/08 19:13:41 cegger Exp $
+
+--- python/xen/xend/server/DevController.py.orig 2008-08-22 09:49:08.000000000 +0000
++++ python/xen/xend/server/DevController.py
+@@ -126,8 +126,11 @@ class DevController:
+ log.debug(
+ 'DevController: still waiting to write device entries.')
+
++ devpath = self.devicePath(devid)
++
+ t.remove(frontpath)
+ t.remove(backpath)
++ t.remove(devpath)
+
+ t.mkdir(backpath)
+ t.set_permissions(backpath,
+@@ -142,6 +145,14 @@ class DevController:
+ t.write2(frontpath, front)
+ t.write2(backpath, back)
+
++ t.mkdir(devpath)
++ t.write2(devpath, {
++ 'backend' : backpath,
++ 'backend-id' : "%i" % backdom,
++ 'frontend' : frontpath,
++ 'frontend-id' : "%i" % self.vm.getDomid()
++ })
++
+ if t.commit():
+ return devid
+
+@@ -254,11 +265,12 @@ class DevController:
+
+ if force:
+ frontpath = self.frontendPath(dev)
+- backpath = xstransact.Read(frontpath, "backend")
++ backpath = self.readVm(devid, "backend")
+ if backpath:
+ xstransact.Remove(backpath)
+ xstransact.Remove(frontpath)
+
++ # xstransact.Remove(self.devicePath()) ?? Below is the same ?
+ self.vm._removeVm("device/%s/%d" % (self.deviceClass, dev))
+
+ def configurations(self, transaction = None):
+@@ -302,9 +314,10 @@ class DevController:
+ @return: dict
+ """
+ if transaction is None:
+- backdomid = xstransact.Read(self.frontendPath(devid), "backend-id")
++ backdomid = xstransact.Read(self.devicePath(devid), "backend-id")
+ else:
+- backdomid = transaction.read(self.frontendPath(devid) + "/backend-id")
++ backdomid = transaction.read(self.devicePath(devid) + "/backend-id")
++
+ if backdomid is None:
+ raise VmError("Device %s not connected" % devid)
+
+@@ -446,17 +459,22 @@ class DevController:
+ else:
+ raise VmError("Device %s not connected" % devid)
+
++ def readVm(self, devid, *args):
++ devpath = self.devicePath(devid)
++ if devpath:
++ return xstransact.Read(devpath, *args)
++ else:
++ raise VmError("Device config %s not found" % devid)
++
+ def readBackend(self, devid, *args):
+- frontpath = self.frontendPath(devid)
+- backpath = xstransact.Read(frontpath, "backend")
++ backpath = self.readVm(devid, "backend")
+ if backpath:
+ return xstransact.Read(backpath, *args)
+ else:
+ raise VmError("Device %s not connected" % devid)
+
+ def readBackendTxn(self, transaction, devid, *args):
+- frontpath = self.frontendPath(devid)
+- backpath = transaction.read(frontpath + "/backend")
++ backpath = self.readVm(devid, "backend")
+ if backpath:
+ paths = map(lambda x: backpath + "/" + x, args)
+ return transaction.read(*paths)
+@@ -474,7 +492,7 @@ class DevController:
+ """@return The IDs of each of the devices currently configured for
+ this instance's deviceClass.
+ """
+- fe = self.backendRoot()
++ fe = self.deviceRoot()
+
+ if transaction:
+ return map(lambda x: int(x.split('/')[-1]), transaction.list(fe))
+@@ -483,8 +501,7 @@ class DevController:
+
+
+ def writeBackend(self, devid, *args):
+- frontpath = self.frontendPath(devid)
+- backpath = xstransact.Read(frontpath, "backend")
++ backpath = self.readVm(devid, "backend")
+
+ if backpath:
+ xstransact.Write(backpath, *args)
+@@ -549,9 +566,8 @@ class DevController:
+
+
+ def waitForBackend(self, devid):
+-
+ frontpath = self.frontendPath(devid)
+- # lookup a phantom
++ # lookup a phantom
+ phantomPath = xstransact.Read(frontpath, 'phantom_vbd')
+ if phantomPath is not None:
+ log.debug("Waiting for %s's phantom %s.", devid, phantomPath)
+@@ -564,7 +580,7 @@ class DevController:
+ if result['status'] != 'Connected':
+ return (result['status'], err)
+
+- backpath = xstransact.Read(frontpath, "backend")
++ backpath = self.readVm(devid, "backend")
+
+
+ if backpath:
+@@ -629,17 +645,20 @@ class DevController:
+ def frontendRoot(self):
+ return "%s/device/%s" % (self.vm.getDomainPath(), self.deviceClass)
+
+- def backendRoot(self):
+- """Construct backend root path assuming backend is domain 0."""
+- from xen.xend.XendDomain import DOM0_ID
Home |
Main Index |
Thread Index |
Old Index