diff options
author | Brett Cannon <bcannon@gmail.com> | 2006-02-27 23:15:56 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2006-02-27 23:15:56 (GMT) |
commit | 68e4cbbcb6e129d468bf4a9e121684ce578735d5 (patch) | |
tree | 18325c9b6a15ad4ec6c91c888d4f0bc2347e18f4 | |
parent | 9e777e5c6ad7e1ab24742c2578c66f692bc19eb9 (diff) | |
download | cpython-68e4cbbcb6e129d468bf4a9e121684ce578735d5.zip cpython-68e4cbbcb6e129d468bf4a9e121684ce578735d5.tar.gz cpython-68e4cbbcb6e129d468bf4a9e121684ce578735d5.tar.bz2 |
Return value off PyErr_Warn() for raising string exceptions was not being
checked. Problem when 'warnings' was set to "error" and thus would re-raise a
new exception.
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Python/ceval.c | 8 |
2 files changed, 9 insertions, 3 deletions
@@ -12,6 +12,10 @@ What's New in Python 2.4.3c1? Core and builtins ----------------- +- Fix missing check on whether the PendingDeprecationWarning for string + exceptions was re-raised as an actual PendingDeprecationWarning when + 'warnings' is set to a filter action of "error" + - Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter. - Patch #1400181, fix unicode string formatting to not use the locale. diff --git a/Python/ceval.c b/Python/ceval.c index 3779ae2..474d89b 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2955,12 +2955,14 @@ do_raise(PyObject *type, PyObject *value, PyObject *tb) Py_DECREF(tmp); } - if (PyString_CheckExact(type)) + if (PyString_CheckExact(type)) { /* Raising builtin string is deprecated but still allowed -- * do nothing. Raising an instance of a new-style str * subclass is right out. */ - PyErr_Warn(PyExc_PendingDeprecationWarning, - "raising a string exception is deprecated"); + if (PyErr_Warn(PyExc_PendingDeprecationWarning, + "raising a string exception is deprecated")) + goto raise_error; + } else if (PyClass_Check(type)) PyErr_NormalizeException(&type, &value, &tb); |