Rebased to version 1.1.3.6

Fix memory leak in testDomainGenerateIfnames (bz 1135388)
Fix python bindings graphics event enum (bz 1113612)
Fix cflags in pkg-config --libs (bz 1134453)
Fix pci bus naming for PPC (bz 1119401)
Fix LXC user namespacess (bz 1105832)
Fix possible 'unknown error' reporting from vol-dumpxml (bz 1097067)
remotes/origin/f20
Cole Robinson 2014-09-08 13:38:51 -04:00
parent 5be4aa5a0b
commit 46a050e6ba
5 changed files with 12 additions and 158 deletions

View File

@ -1,53 +0,0 @@
From 811738592be072be6329d320219a288194b5bb3e Mon Sep 17 00:00:00 2001
From: Jim Fehlig <jfehlig@suse.com>
Date: Mon, 17 Mar 2014 14:22:44 -0600
Subject: [PATCH] libxl: fix framebuffer port setting for HVM domains
libxl uses the libxl_vnc_info and libxl_sdl_info fields from the
hvm union in libxl_domain_build_info struct when generating QEMU
args for VNC or SDL. These fields were left unset by the libxl
driver, causing libxl to ignore any user settings. E.g. with
<graphics type='vnc' port='5950'/>
port would be ignored and QEMU would instead be invoked with
-vnc 127.0.0.1:0,to=99
Unlike the libxl_domain_config struct, the libxl_domain_build_info
contains only a single libxl_vnc_info and libxl_sdl_info, so
populate these fields from the first vfb in
libxl_domain_config->vfbs.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Signed-off-by: David Kiarie <davidkiarie4@gmail.com>
(cherry picked from commit b55cc5f4e31b488c4f9c3c8470c992c1f8f5d09c)
---
src/libxl/libxl_conf.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index d4226b8..f796804 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -1003,6 +1003,20 @@ libxlMakeVfbList(libxlDriverPrivatePtr driver,
d_config->vkbs = x_vkbs;
d_config->num_vfbs = d_config->num_vkbs = nvfbs;
+ /*
+ * VNC or SDL info must also be set in libxl_domain_build_info
+ * for HVM domains. Use the first vfb device.
+ */
+ if (STREQ(def->os.type, "hvm")) {
+ libxl_domain_build_info *b_info = &d_config->b_info;
+ libxl_device_vfb vfb = d_config->vfbs[0];
+
+ if (libxl_defbool_val(vfb.vnc.enable))
+ memcpy(&b_info->u.hvm.vnc, &vfb.vnc, sizeof(libxl_vnc_info));
+ else if (libxl_defbool_val(vfb.sdl.enable))
+ memcpy(&b_info->u.hvm.sdl, &vfb.sdl, sizeof(libxl_sdl_info));
+ }
+
return 0;
error:

View File

@ -1,37 +0,0 @@
From 46de45d079ae2622660fe147cf237ee617cc461c Mon Sep 17 00:00:00 2001
From: "Daniel P. Berrange" <berrange@redhat.com>
Date: Tue, 15 Apr 2014 11:20:29 +0100
Subject: [PATCH] LSN-2014-0003: Don't expand entities when parsing XML
If the XML_PARSE_NOENT flag is passed to libxml2, then any
entities in the input document will be fully expanded. This
allows the user to read arbitrary files on the host machine
by creating an entity pointing to a local file. Removing
the XML_PARSE_NOENT flag means that any entities are left
unchanged by the parser, or expanded to "" by the XPath
APIs.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit d6b27d3e4c40946efa79e91d134616b41b1666c4)
---
src/util/virxml.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/virxml.c b/src/util/virxml.c
index 5852374..de1e1e0 100644
--- a/src/util/virxml.c
+++ b/src/util/virxml.c
@@ -746,11 +746,11 @@ virXMLParseHelper(int domcode,
if (filename) {
xml = xmlCtxtReadFile(pctxt, filename, NULL,
- XML_PARSE_NOENT | XML_PARSE_NONET |
+ XML_PARSE_NONET |
XML_PARSE_NOWARNING);
} else {
xml = xmlCtxtReadDoc(pctxt, BAD_CAST xmlStr, url, NULL,
- XML_PARSE_NOENT | XML_PARSE_NONET |
+ XML_PARSE_NONET |
XML_PARSE_NOWARNING);
}
if (!xml)

View File

@ -1,49 +0,0 @@
From 5fd44adb6baeeb686a9c3ac89a5188ace1fb5e40 Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader@canonical.com>
Date: Wed, 12 Mar 2014 13:03:26 +0100
Subject: [PATCH] libxl: Check for control_d string to decide about dom0
As soon as any guest mounts xenfs to /proc/xen, there is a capabilities
file in that directory. However it returns nothing when reading from it.
Change the test to actually check the contents of the file.
BugLink: http://bugs.launchpad.net/bugs/1248025
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
(cherry picked from commit 8c869ad9f9c5d57ba0ef516835a08afdba7ad828)
---
src/libxl/libxl_driver.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 764a686..fb2a7cc 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -783,6 +783,7 @@ libxlDriverShouldLoad(bool privileged)
bool ret = false;
virCommandPtr cmd;
int status;
+ char *output = NULL;
/* Don't load if non-root */
if (!privileged) {
@@ -790,8 +791,17 @@ libxlDriverShouldLoad(bool privileged)
return ret;
}
- /* Don't load if not running on a Xen control domain (dom0) */
- if (!virFileExists("/proc/xen/capabilities")) {
+ /*
+ * Don't load if not running on a Xen control domain (dom0). It is not
+ * sufficient to check for the file to exist as any guest can mount
+ * xenfs to /proc/xen.
+ */
+ status = virFileReadAll("/proc/xen/capabilities", 10, &output);
+ if (status >= 0) {
+ status = strncmp(output, "control_d", 9);
+ }
+ VIR_FREE(output);
+ if (status) {
VIR_INFO("No Xen capabilities detected, probably not running "
"in a Xen Dom0. Disabling libxenlight driver");

View File

@ -366,8 +366,8 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: 1.1.3.5
Release: 2%{?dist}%{?extra_release}
Version: 1.1.3.6
Release: 1%{?dist}%{?extra_release}
License: LGPLv2+
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
@ -378,14 +378,6 @@ URL: http://libvirt.org/
%endif
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
# Fix xen hvm VNC port (bz #1094262)
Patch0001: 0001-libxl-fix-framebuffer-port-setting-for-HVM-domains.patch
# CVE-2014-0179: Unsafe XML parsing (bz #1094792, bz #1088290)
Patch0002: 0002-LSN-2014-0003-Don-t-expand-entities-when-parsing-XML.patch
# Fix failure to start xen instances (rackspace in particular) (bz
# #1098376)
Patch0003: 0003-libxl-Check-for-control_d-string-to-decide-about-dom.patch
%if %{with_libvirtd}
Requires: libvirt-daemon = %{version}-%{release}
%if %{with_network}
@ -1169,14 +1161,6 @@ of recent versions of Linux (and other OSes).
%prep
%setup -q
# Fix xen hvm VNC port (bz #1094262)
%patch0001 -p1
# CVE-2014-0179: Unsafe XML parsing (bz #1094792, bz #1088290)
%patch0002 -p1
# Fix failure to start xen instances (rackspace in particular) (bz
# #1098376)
%patch0003 -p1
%build
%if ! %{with_xen}
%define _without_xen --without-xen
@ -2134,6 +2118,15 @@ fi
%endif
%changelog
* Mon Sep 08 2014 Cole Robinson <crobinso@redhat.com> - 1.1.3.6-1
- Rebased to version 1.1.3.6
- Fix memory leak in testDomainGenerateIfnames (bz 1135388)
- Fix python bindings graphics event enum (bz 1113612)
- Fix cflags in pkg-config --libs (bz 1134453)
- Fix pci bus naming for PPC (bz 1119401)
- Fix LXC user namespacess (bz 1105832)
- Fix possible 'unknown error' reporting from vol-dumpxml (bz 1097067)
* Mon May 19 2014 Cole Robinson <crobinso@redhat.com> - 1.1.3.5-2
- Fix xen hvm VNC port (bz #1094262)
- CVE-2014-0179: Unsafe XML parsing (bz #1094792, bz #1088290)

View File

@ -1 +1 @@
e3faa36a48acc7070b2158c9abee7ffd libvirt-1.1.3.5.tar.gz
697405527704dceb30df9db49d81da83 libvirt-1.1.3.6.tar.gz