Add two missing error checks in hamt.c (GH-5851)
(cherry picked from commit 3c7ac7ea20
)
Co-authored-by: Xiang Zhang <angwerzx@126.com>
This commit is contained in:
parent
c072e25885
commit
e724dd4e5e
|
@ -1510,6 +1510,9 @@ hamt_node_collision_without(PyHamtNode_Collision *self,
|
||||||
PyHamtNode_Collision *new = (PyHamtNode_Collision *)
|
PyHamtNode_Collision *new = (PyHamtNode_Collision *)
|
||||||
hamt_node_collision_new(
|
hamt_node_collision_new(
|
||||||
self->c_hash, Py_SIZE(self) - 2);
|
self->c_hash, Py_SIZE(self) - 2);
|
||||||
|
if (new == NULL) {
|
||||||
|
return W_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
/* Copy all other keys from `self` to `new` */
|
/* Copy all other keys from `self` to `new` */
|
||||||
Py_ssize_t i;
|
Py_ssize_t i;
|
||||||
|
@ -1742,7 +1745,10 @@ hamt_node_array_assoc(PyHamtNode_Array *self,
|
||||||
Set the key to it./ */
|
Set the key to it./ */
|
||||||
child_node = hamt_node_assoc(
|
child_node = hamt_node_assoc(
|
||||||
node, shift + 5, hash, key, val, added_leaf);
|
node, shift + 5, hash, key, val, added_leaf);
|
||||||
if (child_node == (PyHamtNode *)self) {
|
if (child_node == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
else if (child_node == (PyHamtNode *)self) {
|
||||||
Py_DECREF(child_node);
|
Py_DECREF(child_node);
|
||||||
return (PyHamtNode *)self;
|
return (PyHamtNode *)self;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue