[Forensics-changes] [yara] 123/415: Fix reference counting bug in yara-python
Hilko Bengen
bengen at moszumanska.debian.org
Thu Apr 3 05:42:53 UTC 2014
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to branch debian
in repository yara.
commit 9180110141165ad3f41c6abf646c1c8cf4f5a77c
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Mon Apr 23 20:29:41 2012 +0000
Fix reference counting bug in yara-python
---
yara-python/yara-python.c | 30 ++++++++++++++++++++++--------
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/yara-python/yara-python.c b/yara-python/yara-python.c
index ae64f0b..1182939 100644
--- a/yara-python/yara-python.c
+++ b/yara-python/yara-python.c
@@ -189,6 +189,8 @@ static PyObject * Match_getattro(PyObject *self, PyObject *name)
static PyObject * Match_richcompare(PyObject *self, PyObject *other, int op)
{
+ PyObject* result;
+
Match *a = (Match *) self;
Match *b = (Match *) other;
@@ -199,16 +201,22 @@ static PyObject * Match_richcompare(PyObject *self, PyObject *other, int op)
case Py_EQ:
if (PyObject_RichCompareBool(a->rule, b->rule, Py_EQ) && PyObject_RichCompareBool(a->ns, b->ns, Py_EQ))
- return Py_True;
+ result = Py_True;
else
- return Py_False;
+ result = Py_False;
+
+ Py_INCREF(result);
+ break;
case Py_NE:
if (PyObject_RichCompareBool(a->rule, b->rule, Py_NE) || PyObject_RichCompareBool(a->ns, b->ns, Py_NE))
- return Py_True;
+ result = Py_True;
else
- return Py_False;
+ result = Py_False;
+
+ Py_INCREF(result);
+ break;
case Py_LT:
case Py_LE:
@@ -216,13 +224,19 @@ static PyObject * Match_richcompare(PyObject *self, PyObject *other, int op)
case Py_GE:
if (PyObject_RichCompareBool(a->rule, b->rule, Py_EQ))
- return PyObject_RichCompare(a->ns, b->ns, op);
+ result = PyObject_RichCompare(a->ns, b->ns, op);
else
- return PyObject_RichCompare(a->rule, b->rule, op);
+ result = PyObject_RichCompare(a->rule, b->rule, op);
+
+ break;
}
}
-
- return PyErr_Format(PyExc_TypeError, "'Match' objects must be compared with objects of the same class");
+ else
+ {
+ result = PyErr_Format(PyExc_TypeError, "'Match' objects must be compared with objects of the same class");
+ }
+
+ return result;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git
More information about the forensics-changes
mailing list