bpo-40645: Fix ref leaks in _hashopenssl (GH-26079)

(cherry picked from commit 504ffdae4e)

Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
This commit is contained in:
Miss Islington (bot) 2021-05-12 11:45:06 -07:00 committed by GitHub
parent a2d94a0a9b
commit 1ee58f2524
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2093,20 +2093,25 @@ hashlib_init_constructors(PyObject *module)
}
func = PyObject_GetAttrString(module, fdef->ml_name);
if (func == NULL) {
Py_DECREF(name_obj);
return -1;
}
if (PyDict_SetItem(state->constructs, func, name_obj) < 0) {
return -1;
}
int rc = PyDict_SetItem(state->constructs, func, name_obj);
Py_DECREF(func);
Py_DECREF(name_obj);
if (rc < 0) {
return -1;
}
}
proxy = PyDictProxy_New(state->constructs);
if (proxy == NULL) {
return -1;
}
if (PyModule_AddObjectRef(module, "_constructors", proxy) < 0) {
int rc = PyModule_AddObjectRef(module, "_constructors", proxy);
Py_DECREF(proxy);
if (rc < 0) {
return -1;
}
return 0;