SF patch #471852 (anonymous) notes that getattr(obj, name, default)

masks any exception, not just AttributeError.  Fix this.
This commit is contained in:
Guido van Rossum 2001-10-16 21:31:32 +00:00
parent 9bc9d66eb1
commit d892357bf7
1 changed files with 3 additions and 1 deletions

View File

@ -619,7 +619,9 @@ builtin_getattr(PyObject *self, PyObject *args)
return NULL;
}
result = PyObject_GetAttr(v, name);
if (result == NULL && dflt != NULL) {
if (result == NULL && dflt != NULL &&
PyErr_ExceptionMatches(PyExc_AttributeError))
{
PyErr_Clear();
Py_INCREF(dflt);
result = dflt;