[meta-virtualization] [PATCH] libvirt-python: backport a patch to fix crash in getAllDomainStats
Bruce Ashfield
bruce.ashfield at gmail.com
Wed May 25 06:41:19 PDT 2016
On Tue, May 24, 2016 at 1:28 AM, <rongqing.li at windriver.com> wrote:
> From: Roy Li <rongqing.li at windriver.com>
>
>
We should have a better commit log here .. so I copied the one from your
patch into
the main log.
I also tend to prefer uprev's versus backports .. but we can carry this for
now, until
I get around to bumping the version.
Bruce
> Signed-off-by: Roy Li <rongqing.li at windriver.com>
> ---
> recipes-extended/libvirt/libvirt-python.inc | 1 +
> .../0001-fix-crash-in-getAllDomainStats.patch | 57
> ++++++++++++++++++++++
> 2 files changed, 58 insertions(+)
> create mode 100644
> recipes-extended/libvirt/libvirt/0001-fix-crash-in-getAllDomainStats.patch
>
> diff --git a/recipes-extended/libvirt/libvirt-python.inc
> b/recipes-extended/libvirt/libvirt-python.inc
> index c1dafe9..405d5f7 100644
> --- a/recipes-extended/libvirt/libvirt-python.inc
> +++ b/recipes-extended/libvirt/libvirt-python.inc
> @@ -17,6 +17,7 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/*
> ${libdir}/${PYTHON_DIR}/*"
>
> SRC_URI += "
> http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python
> "
> SRC_URI +=
> "file://libvirt_api_xml_path.patch;patchdir=../libvirt-python-${PV}"
> +SRC_URI +=
> "file://0001-fix-crash-in-getAllDomainStats.patch;patchdir=../libvirt-python-${PV}"
>
> SRC_URI[libvirt_python.md5sum] = "ed018c714d7ddbe93221c796dff283ed"
> SRC_URI[libvirt_python.sha256sum] =
> "6d35ae9e7801573393b9c92471f39e6700d479f10b641df81d041b469f160bf8"
> diff --git
> a/recipes-extended/libvirt/libvirt/0001-fix-crash-in-getAllDomainStats.patch
> b/recipes-extended/libvirt/libvirt/0001-fix-crash-in-getAllDomainStats.patch
> new file mode 100644
> index 0000000..0583a94
> --- /dev/null
> +++
> b/recipes-extended/libvirt/libvirt/0001-fix-crash-in-getAllDomainStats.patch
> @@ -0,0 +1,57 @@
> +From e9c4e2abffef007a28112ebb40a9586b0128f10b Mon Sep 17 00:00:00 2001
> +From: Pavel Hrdina <phrdina at redhat.com>
> +Date: Mon, 18 Apr 2016 16:53:50 +0200
> +Subject: [PATCH] fix crash in getAllDomainStats
> +
> +Upstream-Status: Backport
> +
> +Commits 1d39dbaf and 827ed9b4 broke the libvirt-python API by removing
> +virDomainRef() and virDomainFree(). virDomainStatsRecordListFree() will
> +free that domain pointer and later when virDomain (python object) call
> +its destructor and tries to free that same pointer again.
> +
> +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1326839
> +
> +Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> +---
> + libvirt-override.c | 8 +++++++-
> + 1 file changed, 7 insertions(+), 1 deletion(-)
> +
> +diff --git a/libvirt-override.c b/libvirt-override.c
> +index 4640ed5..2de95ce 100644
> +--- a/libvirt-override.c
> ++++ b/libvirt-override.c
> +@@ -8381,6 +8381,7 @@ convertDomainStatsRecord(virDomainStatsRecordPtr
> *records,
> + PyObject *py_retval;
> + PyObject *py_record;
> + PyObject *py_record_stats = NULL;
> ++ virDomainPtr dom = NULL;
> + size_t i;
> +
> + if (!(py_retval = PyList_New(nrecords)))
> +@@ -8392,9 +8393,12 @@ convertDomainStatsRecord(virDomainStatsRecordPtr
> *records,
> +
> + VIR_PY_LIST_SET_GOTO(py_retval, i, py_record, error);
> +
> ++ dom = records[i]->dom;
> ++ virDomainRef(dom);
> + VIR_PY_TUPLE_SET_GOTO(py_record, 0,
> +- libvirt_virDomainPtrWrap(records[i]->dom),
> ++ libvirt_virDomainPtrWrap(dom),
> + error);
> ++ dom = NULL;
> +
> + if (!(py_record_stats =
> getPyVirTypedParameter(records[i]->params,
> +
> records[i]->nparams)))
> +@@ -8406,6 +8410,8 @@ convertDomainStatsRecord(virDomainStatsRecordPtr
> *records,
> + return py_retval;
> +
> + error:
> ++ if (dom)
> ++ virDomainFree(dom);
> + Py_XDECREF(py_retval);
> + return NULL;
> + }
> +--
> +2.8.1
> +
> --
> 2.8.1
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
>
--
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-virtualization/attachments/20160525/8b9e767f/attachment.html>
More information about the meta-virtualization
mailing list