On Tue, May 24, 2016 at 1:28 AM, <[email protected]> wrote: > From: Roy Li <[email protected]> > > 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 <[email protected]> > --- > 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 <[email protected]> > +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 <[email protected]> > +--- > + 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 > [email protected] > https://lists.yoctoproject.org/listinfo/meta-virtualization > -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"
-- _______________________________________________ meta-virtualization mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-virtualization
