diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2013-11-15 21:47:37 +1000 |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2013-11-15 21:47:37 +1000 |
commit | a3a1673d825f9d6711c1fe1571d575dc4934358b (patch) | |
tree | a30796b17c5ff3a3dab76dce4042b9348c025cd3 /Python/codecs.c | |
parent | 271f0c294ade2fab51d264132bf94f4289da0e3f (diff) | |
download | cpython-a3a1673d825f9d6711c1fe1571d575dc4934358b.tar.gz |
Close 19609: narrow scope of codec exc chaining
Diffstat (limited to 'Python/codecs.c')
-rw-r--r-- | Python/codecs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Python/codecs.c b/Python/codecs.c index e2edc269a8..fe0cab4f7f 100644 --- a/Python/codecs.c +++ b/Python/codecs.c @@ -370,8 +370,10 @@ PyObject *PyCodec_Encode(PyObject *object, goto onError; result = PyEval_CallObject(encoder, args); - if (result == NULL) + if (result == NULL) { + wrap_codec_error("encoding", encoding); goto onError; + } if (!PyTuple_Check(result) || PyTuple_GET_SIZE(result) != 2) { @@ -392,7 +394,6 @@ PyObject *PyCodec_Encode(PyObject *object, Py_XDECREF(result); Py_XDECREF(args); Py_XDECREF(encoder); - wrap_codec_error("encoding", encoding); return NULL; } @@ -418,8 +419,10 @@ PyObject *PyCodec_Decode(PyObject *object, goto onError; result = PyEval_CallObject(decoder,args); - if (result == NULL) + if (result == NULL) { + wrap_codec_error("decoding", encoding); goto onError; + } if (!PyTuple_Check(result) || PyTuple_GET_SIZE(result) != 2) { PyErr_SetString(PyExc_TypeError, @@ -439,7 +442,6 @@ PyObject *PyCodec_Decode(PyObject *object, Py_XDECREF(args); Py_XDECREF(decoder); Py_XDECREF(result); - wrap_codec_error("decoding", encoding); return NULL; } |