diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2019-09-01 12:03:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-01 12:03:39 +0300 |
commit | 41c57b335330ff48af098d47e379e0f9ba09d233 (patch) | |
tree | 15cdef099182eddb04b2276dc51375b8faf28278 /Objects/weakrefobject.c | |
parent | f02ea6225bc3b71bd5fe66224d199a6e3e23b14d (diff) | |
download | cpython-git-41c57b335330ff48af098d47e379e0f9ba09d233.tar.gz |
bpo-37994: Fix silencing all errors if an attribute lookup fails. (GH-15630)
Only AttributeError should be silenced.
Diffstat (limited to 'Objects/weakrefobject.c')
-rw-r--r-- | Objects/weakrefobject.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c index e8a429ab5b..daee476444 100644 --- a/Objects/weakrefobject.c +++ b/Objects/weakrefobject.c @@ -163,10 +163,10 @@ weakref_repr(PyWeakReference *self) if (PyWeakref_GET_OBJECT(self) == Py_None) return PyUnicode_FromFormat("<weakref at %p; dead>", self); - name = _PyObject_GetAttrId(PyWeakref_GET_OBJECT(self), &PyId___name__); + if (_PyObject_LookupAttrId(PyWeakref_GET_OBJECT(self), &PyId___name__, &name) < 0) { + return NULL; + } if (name == NULL || !PyUnicode_Check(name)) { - if (name == NULL) - PyErr_Clear(); repr = PyUnicode_FromFormat( "<weakref at %p; to '%s' at %p>", self, |