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

View file

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