[2.7] bpo-31243: Fixed PyArg_ParseTuple failure checks. (GH-3171) (#3235)
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index a5e3f07..ecc473c 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -911,8 +911,9 @@
PyTuple_SET_ITEM(tuple, 0, num);
value = -1;
- if (PyArg_ParseTuple(tuple, "L:test_L_code", &value) < 0)
+ if (!PyArg_ParseTuple(tuple, "L:test_L_code", &value)) {
return NULL;
+ }
if (value != 42)
return raiseTestError("test_L_code",
"L code returned wrong value for long 42");
@@ -925,8 +926,9 @@
PyTuple_SET_ITEM(tuple, 0, num);
value = -1;
- if (PyArg_ParseTuple(tuple, "L:test_L_code", &value) < 0)
+ if (!PyArg_ParseTuple(tuple, "L:test_L_code", &value)) {
return NULL;
+ }
if (value != 42)
return raiseTestError("test_L_code",
"L code returned wrong value for int 42");
@@ -1207,8 +1209,9 @@
PyTuple_SET_ITEM(tuple, 0, num);
value = 0;
- if (PyArg_ParseTuple(tuple, "k:test_k_code", &value) < 0)
+ if (!PyArg_ParseTuple(tuple, "k:test_k_code", &value)) {
return NULL;
+ }
if (value != ULONG_MAX)
return raiseTestError("test_k_code",
"k code returned wrong value for long 0xFFF...FFF");
@@ -1226,8 +1229,9 @@
PyTuple_SET_ITEM(tuple, 0, num);
value = 0;
- if (PyArg_ParseTuple(tuple, "k:test_k_code", &value) < 0)
+ if (!PyArg_ParseTuple(tuple, "k:test_k_code", &value)) {
return NULL;
+ }
if (value != (unsigned long)-0x42)
return raiseTestError("test_k_code",
"k code returned wrong value for long -0xFFF..000042");
@@ -1587,14 +1591,16 @@
PyTuple_SET_ITEM(tuple, 0, obj);
value = 0;
- if (PyArg_ParseTuple(tuple, "u:test_u_code", &value) < 0)
+ if (!PyArg_ParseTuple(tuple, "u:test_u_code", &value)) {
return NULL;
+ }
if (value != PyUnicode_AS_UNICODE(obj))
return raiseTestError("test_u_code",
"u code returned wrong value for u'test'");
value = 0;
- if (PyArg_ParseTuple(tuple, "u#:test_u_code", &value, &len) < 0)
+ if (!PyArg_ParseTuple(tuple, "u#:test_u_code", &value, &len)) {
return NULL;
+ }
if (value != PyUnicode_AS_UNICODE(obj) ||
len != PyUnicode_GET_SIZE(obj))
return raiseTestError("test_u_code",
@@ -1692,8 +1698,9 @@
tuple = PyTuple_New(0);
if (!tuple)
return NULL;
- if ((result = PyArg_ParseTuple(tuple, "|:test_empty_argparse")) < 0)
+ if (!(result = PyArg_ParseTuple(tuple, "|:test_empty_argparse"))) {
goto done;
+ }
dict = PyDict_New();
if (!dict)
goto done;
@@ -1701,8 +1708,9 @@
done:
Py_DECREF(tuple);
Py_XDECREF(dict);
- if (result < 0)
+ if (!result) {
return NULL;
+ }
else {
Py_RETURN_NONE;
}
@@ -2494,8 +2502,9 @@
{
int signum, err;
- if (PyArg_ParseTuple(args, "i:raise_signal", &signum) < 0)
+ if (!PyArg_ParseTuple(args, "i:raise_signal", &signum)) {
return NULL;
+ }
err = raise(signum);
if (err)