diff --git a/libvirt.changes b/libvirt.changes index f43dbec..e2e6164 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Oct 12 22:39:42 MDT 2009 - jfehlig@novell.com + +- Build phyp driver ifarch ppc64 + fate#307096 +- Fix memory leaks in libvirtd's message processing + msg-proc-memleak.patch + ------------------------------------------------------------------- Tue Sep 29 08:34:28 MDT 2009 - jfehlig@novell.com diff --git a/libvirt.spec b/libvirt.spec index c108622..3a24ac3 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -20,6 +20,7 @@ %define with_xen 1 %define with_lxc 0 %define with_selinux 0 +%define with_phyp 0 # Xen is available only on i386 x86_64 %ifnarch %ix86 x86_64 %define with_xen 0 @@ -28,6 +29,10 @@ %define with_lxc 1 %define with_selinux 1 %endif +# Build phyp backend for IBM Power systems +%ifarch ppc64 +%define with_phyp 1 +%endif Name: libvirt BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel hal-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel readline-devel util-linux xhtml-dtd @@ -50,6 +55,9 @@ BuildRequires: polkit >= 0.9 %else BuildRequires: PolicyKit-devel >= 0.6 %endif +%if %{with_phyp} +BuildRequires: libssh2-devel +%endif # Only for directory ownership: BuildRequires: gtk-doc Url: http://libvirt.org/ @@ -57,7 +65,7 @@ License: LGPL v2.1 or later Group: Development/Libraries/C and C++ AutoReqProv: yes Version: 0.7.1 -Release: 2 +Release: 3 Summary: A C toolkit to interract with the virtualization capabilities of Linux Requires: readline Requires: ncurses @@ -86,6 +94,7 @@ Source1: libvirtd.init Patch0: devmap-no-pkgconfig.patch Patch1: xen-refcnt.patch Patch2: vshdeinit-recurse.patch +Patch3: msg-proc-memleak.patch # Need to go upstream Patch100: socat.patch Patch101: clone.patch @@ -190,6 +199,7 @@ Authors: %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %patch100 -p1 %patch101 %patch102 -p1 diff --git a/msg-proc-memleak.patch b/msg-proc-memleak.patch new file mode 100644 index 0000000..cd40f75 --- /dev/null +++ b/msg-proc-memleak.patch @@ -0,0 +1,48 @@ +Index: libvirt-0.7.1/qemud/dispatch.c +=================================================================== +--- libvirt-0.7.1.orig/qemud/dispatch.c ++++ libvirt-0.7.1/qemud/dispatch.c +@@ -191,6 +191,7 @@ remoteSerializeError(struct qemud_client + + xdr_error: + xdr_destroy(&xdr); ++ VIR_FREE(msg); + fatal_error: + xdr_free((xdrproc_t)xdr_remote_error, (char *)rerr); + return -1; +@@ -336,6 +337,7 @@ remoteDispatchClientRequest (struct qemu + struct qemud_client *client, + struct qemud_client_message *msg) + { ++ int ret; + remote_error rerr; + + memset(&rerr, 0, sizeof rerr); +@@ -364,7 +366,12 @@ remoteDispatchClientRequest (struct qemu + } + + error: +- return remoteSerializeReplyError(client, &rerr, &msg->hdr); ++ ret = remoteSerializeReplyError(client, &rerr, &msg->hdr); ++ ++ if (ret >= 0) ++ VIR_FREE(msg); ++ ++ return ret; + } + + +@@ -521,8 +528,12 @@ remoteDispatchClientCall (struct qemud_s + rpc_error: + /* Semi-bad stuff happened, we can still try to send back + * an RPC error message to client */ +- return remoteSerializeReplyError(client, &rerr, &msg->hdr); ++ rv = remoteSerializeReplyError(client, &rerr, &msg->hdr); ++ ++ if (rv >= 0) ++ VIR_FREE(msg); + ++ return rv; + + xdr_error: + /* Seriously bad stuff happened, so we'll kill off this client diff --git a/sexpr2string.patch b/sexpr2string.patch deleted file mode 100644 index 633fcc1..0000000 --- a/sexpr2string.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 1a1f8b9dbb68bf43c831e471ab4308d81a113ecd Mon Sep 17 00:00:00 2001 -From: Jim Fehlig -Date: Tue, 25 Aug 2009 15:54:18 -0600 -Subject: [PATCH] Fix sexpr2string() to handle empty list. - -S-expression containing empty lists, e.g. (cpus (() () () ())), -was not being handled properly in sexpr2string() serialization. -Emit an empty list when encountering NIL sexpr kind. ---- - src/sexpr.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -Index: libvirt-0.7.0/src/sexpr.c -=================================================================== ---- libvirt-0.7.0.orig/src/sexpr.c -+++ libvirt-0.7.0/src/sexpr.c -@@ -255,6 +255,10 @@ sexpr2string(const struct sexpr * sexpr, - ret += tmp; - break; - case SEXPR_NIL: -+ tmp = snprintf(buffer + ret, n_buffer - ret, "()"); -+ if (tmp == 0) -+ goto error; -+ ret += tmp; - break; - default: - goto error;