bpo-28261: fix err msgs where PyArg_ParseTuple is used to parse normal tuples (leftovers) (#3198)
This commit is contained in:
parent
a5fab17fc1
commit
13614e375c
|
@ -531,7 +531,15 @@ _io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self)
|
||||||
_PyIO_str_getstate, NULL);
|
_PyIO_str_getstate, NULL);
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!PyArg_ParseTuple(state, "OK", &buffer, &flag)) {
|
if (!PyTuple_Check(state)) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,
|
||||||
|
"illegal decoder state");
|
||||||
|
Py_DECREF(state);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (!PyArg_ParseTuple(state, "OK;illegal decoder state",
|
||||||
|
&buffer, &flag))
|
||||||
|
{
|
||||||
Py_DECREF(state);
|
Py_DECREF(state);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -669,7 +677,7 @@ typedef struct
|
||||||
written, or NULL */
|
written, or NULL */
|
||||||
Py_ssize_t pending_bytes_count;
|
Py_ssize_t pending_bytes_count;
|
||||||
|
|
||||||
/* snapshot is either None, or a tuple (dec_flags, next_input) where
|
/* snapshot is either NULL, or a tuple (dec_flags, next_input) where
|
||||||
* dec_flags is the second (integer) item of the decoder state and
|
* dec_flags is the second (integer) item of the decoder state and
|
||||||
* next_input is the chunk of input bytes that comes next after the
|
* next_input is the chunk of input bytes that comes next after the
|
||||||
* snapshot point. We use this to reconstruct decoder states in tell().
|
* snapshot point. We use this to reconstruct decoder states in tell().
|
||||||
|
@ -2351,6 +2359,7 @@ _io_TextIOWrapper_tell_impl(textio *self)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
/* Skip backward to the snapshot point (see _read_chunk). */
|
/* Skip backward to the snapshot point (see _read_chunk). */
|
||||||
|
assert(PyTuple_Check(self->snapshot));
|
||||||
if (!PyArg_ParseTuple(self->snapshot, "iO", &cookie.dec_flags, &next_input))
|
if (!PyArg_ParseTuple(self->snapshot, "iO", &cookie.dec_flags, &next_input))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
@ -2378,7 +2387,15 @@ _io_TextIOWrapper_tell_impl(textio *self)
|
||||||
_PyIO_str_getstate, NULL); \
|
_PyIO_str_getstate, NULL); \
|
||||||
if (_state == NULL) \
|
if (_state == NULL) \
|
||||||
goto fail; \
|
goto fail; \
|
||||||
if (!PyArg_ParseTuple(_state, "Oi", &dec_buffer, &dec_flags)) { \
|
if (!PyTuple_Check(_state)) { \
|
||||||
|
PyErr_SetString(PyExc_TypeError, \
|
||||||
|
"illegal decoder state"); \
|
||||||
|
Py_DECREF(_state); \
|
||||||
|
goto fail; \
|
||||||
|
} \
|
||||||
|
if (!PyArg_ParseTuple(_state, "Oi;illegal decoder state", \
|
||||||
|
&dec_buffer, &dec_flags)) \
|
||||||
|
{ \
|
||||||
Py_DECREF(_state); \
|
Py_DECREF(_state); \
|
||||||
goto fail; \
|
goto fail; \
|
||||||
} \
|
} \
|
||||||
|
|
Loading…
Reference in New Issue