diff options
| author | Oren Milman <orenmn@gmail.com> | 2017-08-29 08:58:27 (GMT) |
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-08-29 08:58:27 (GMT) |
| commit | ba7d7365215d791025d1efd25393c91404f2cfc8 (patch) | |
| tree | 8ba0a3b1944172f450f0d76f588bb106dd50e174 /Modules/_testcapimodule.c | |
| parent | e9d978fd1bc122395efc91a82b16b2c4b968441d (diff) | |
| download | cpython-ba7d7365215d791025d1efd25393c91404f2cfc8.zip cpython-ba7d7365215d791025d1efd25393c91404f2cfc8.tar.gz cpython-ba7d7365215d791025d1efd25393c91404f2cfc8.tar.bz2 | |
bpo-31243: Fixed PyArg_ParseTuple failure checks. (#3171)
Diffstat (limited to 'Modules/_testcapimodule.c')
| -rw-r--r-- | Modules/_testcapimodule.c | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 95c1018..2952317 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -864,8 +864,9 @@ test_L_code(PyObject *self) 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"); @@ -878,8 +879,9 @@ test_L_code(PyObject *self) 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"); @@ -1195,8 +1197,9 @@ test_k_code(PyObject *self) 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"); @@ -1215,8 +1218,9 @@ test_k_code(PyObject *self) 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"); @@ -1549,11 +1553,13 @@ test_s_code(PyObject *self) /* These two blocks used to raise a TypeError: * "argument must be string without null bytes, not str" */ - if (PyArg_ParseTuple(tuple, "s:test_s_code1", &value) < 0) - return NULL; + if (!PyArg_ParseTuple(tuple, "s:test_s_code1", &value)) { + return NULL; + } - if (PyArg_ParseTuple(tuple, "z:test_s_code2", &value) < 0) - return NULL; + if (!PyArg_ParseTuple(tuple, "z:test_s_code2", &value)) { + return NULL; + } Py_DECREF(tuple); Py_RETURN_NONE; @@ -1655,14 +1661,16 @@ test_u_code(PyObject *self) 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", @@ -1694,8 +1702,9 @@ test_Z_code(PyObject *self) value2 = PyUnicode_AS_UNICODE(obj); /* Test Z for both values */ - if (PyArg_ParseTuple(tuple, "ZZ:test_Z_code", &value1, &value2) < 0) + if (!PyArg_ParseTuple(tuple, "ZZ:test_Z_code", &value1, &value2)) { return NULL; + } if (value1 != PyUnicode_AS_UNICODE(obj)) return raiseTestError("test_Z_code", "Z code returned wrong value for 'test'"); @@ -1709,9 +1718,11 @@ test_Z_code(PyObject *self) len2 = -1; /* Test Z# for both values */ - if (PyArg_ParseTuple(tuple, "Z#Z#:test_Z_code", &value1, &len1, - &value2, &len2) < 0) + if (!PyArg_ParseTuple(tuple, "Z#Z#:test_Z_code", &value1, &len1, + &value2, &len2)) + { return NULL; + } if (value1 != PyUnicode_AS_UNICODE(obj) || len1 != PyUnicode_GET_SIZE(obj)) return raiseTestError("test_Z_code", @@ -2033,8 +2044,9 @@ test_empty_argparse(PyObject *self) 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; @@ -2042,8 +2054,9 @@ test_empty_argparse(PyObject *self) done: Py_DECREF(tuple); Py_XDECREF(dict); - if (result < 0) + if (!result) { return NULL; + } else { Py_RETURN_NONE; } @@ -3698,8 +3711,9 @@ test_raise_signal(PyObject* self, PyObject *args) { 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) |
