Skip to content

Commit e7cbb7c

Browse files
committed
Update checks based on some code review feedback.
1 parent 1525fe0 commit e7cbb7c

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/lxml.c

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,31 @@ static int PyXmlSec_CheckLxmlLibraryVersion(void) {
6767
if (version == NULL) {
6868
goto FINALIZE;
6969
}
70-
if (!PyTuple_Check(version) || PyTuple_Size(version) != 3) {
70+
if (!PyTuple_Check(version) || PyTuple_Size(version) < 2) {
7171
goto FINALIZE;
7272
}
7373

7474
PyObject* major = PyTuple_GetItem(version, 0);
7575
PyObject* minor = PyTuple_GetItem(version, 1);
7676

77+
if (PyErr_Occurred()) {
78+
goto FINALIZE;
79+
}
80+
7781
if (!PyLong_Check(major) || !PyLong_Check(minor)) {
7882
goto FINALIZE;
7983
}
8084

81-
if (PyLong_AsLong(major) != PyXmlSec_GetLibXmlVersionMajor() || PyLong_AsLong(minor) != PyXmlSec_GetLibXmlVersionMinor()) {
85+
long lxml_major = PyLong_AsLong(major);
86+
long lxml_minor = PyLong_AsLong(minor);
87+
long xmlsec_major = PyXmlSec_GetLibXmlVersionMajor();
88+
long xmlsec_minor = PyXmlSec_GetLibXmlVersionMinor();
89+
90+
if (PyErr_Occurred()) {
91+
goto FINALIZE;
92+
}
93+
94+
if (lxml_major != xmlsec_major || lxml_minor != xmlsec_minor) {
8295
goto FINALIZE;
8396
}
8497

@@ -88,6 +101,10 @@ static int PyXmlSec_CheckLxmlLibraryVersion(void) {
88101
// Cleanup our references, and return the result
89102
Py_XDECREF(lxml);
90103
Py_XDECREF(version);
104+
105+
// Clear any errors that may have occurred
106+
PyErr_Clear();
107+
91108
return result;
92109
}
93110

0 commit comments

Comments
 (0)