[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