mirror of https://github.com/python/cpython
Fix missing/incomplete NULL checks in multiple source files (#104564)
Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
This commit is contained in:
parent
ae00b810d1
commit
13b5d79090
|
@ -2381,7 +2381,12 @@ get_local_timestamp(PyObject *dt, int64_t *local_ts)
|
|||
/////
|
||||
// Functions for cache handling
|
||||
|
||||
/* Constructor for StrongCacheNode */
|
||||
/* Constructor for StrongCacheNode
|
||||
*
|
||||
* This function doesn't set MemoryError if PyMem_Malloc fails,
|
||||
* as the cache intentionally doesn't propagate exceptions
|
||||
* and fails silently if error occurs.
|
||||
*/
|
||||
static StrongCacheNode *
|
||||
strong_cache_node_new(PyObject *key, PyObject *zone)
|
||||
{
|
||||
|
@ -2572,6 +2577,9 @@ update_strong_cache(zoneinfo_state *state, const PyTypeObject *const type,
|
|||
}
|
||||
|
||||
StrongCacheNode *new_node = strong_cache_node_new(key, zone);
|
||||
if (new_node == NULL) {
|
||||
return;
|
||||
}
|
||||
StrongCacheNode **root = &(state->ZONEINFO_STRONG_CACHE);
|
||||
move_strong_cache_node_to_front(state, root, new_node);
|
||||
|
||||
|
|
|
@ -84,6 +84,7 @@ errno_exec(PyObject *module)
|
|||
PyObject *module_dict = PyModule_GetDict(module);
|
||||
PyObject *error_dict = PyDict_New();
|
||||
if (!module_dict || !error_dict) {
|
||||
Py_XDECREF(error_dict);
|
||||
return -1;
|
||||
}
|
||||
if (PyDict_SetItemString(module_dict, "errorcode", error_dict) < 0) {
|
||||
|
|
|
@ -9023,6 +9023,10 @@ os_setgroups(PyObject *module, PyObject *groups)
|
|||
}
|
||||
|
||||
gid_t *grouplist = PyMem_New(gid_t, len);
|
||||
if (grouplist == NULL) {
|
||||
PyErr_NoMemory();
|
||||
return NULL;
|
||||
}
|
||||
for (Py_ssize_t i = 0; i < len; i++) {
|
||||
PyObject *elem;
|
||||
elem = PySequence_GetItem(groups, i);
|
||||
|
|
|
@ -73,6 +73,9 @@ static SHA1object *
|
|||
newSHA1object(SHA1State *st)
|
||||
{
|
||||
SHA1object *sha = (SHA1object *)PyObject_GC_New(SHA1object, st->sha1_type);
|
||||
if (sha == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
sha->lock = NULL;
|
||||
PyObject_GC_Track(sha);
|
||||
return sha;
|
||||
|
|
|
@ -1722,6 +1722,9 @@ ZlibDecompressor__new__(PyTypeObject *cls,
|
|||
return NULL;
|
||||
}
|
||||
ZlibDecompressor *self = PyObject_New(ZlibDecompressor, cls);
|
||||
if (self == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
self->eof = 0;
|
||||
self->needs_input = 1;
|
||||
self->avail_in_real = 0;
|
||||
|
|
Loading…
Reference in New Issue