File tree Expand file tree Collapse file tree 1 file changed +19
-2
lines changed
Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments