wmem: Allow integer lookups with a null tree

wmem_tree currently returns NULL for lookups of strings with
a NULL tree, but tries to dereference the tree and crashes when
looking up integers with a NULL tree. Return NULL (or FALSE, for
contains32()) for a tree that doesn't exist, making it easier to
lazily create a tree only when inserting an entry.
This commit is contained in:
John Thacker 2023-04-17 20:54:53 -04:00
parent 799fb72e1e
commit dd2ca75184
1 changed files with 12 additions and 0 deletions

View File

@ -501,6 +501,10 @@ wmem_tree_insert32(wmem_tree_t *tree, guint32 key, void *data)
gboolean wmem_tree_contains32(wmem_tree_t *tree, guint32 key)
{
if (!tree) {
return FALSE;
}
wmem_tree_node_t *node = tree->root;
while (node) {
@ -521,6 +525,10 @@ gboolean wmem_tree_contains32(wmem_tree_t *tree, guint32 key)
void *
wmem_tree_lookup32(wmem_tree_t *tree, guint32 key)
{
if (!tree) {
return NULL;
}
wmem_tree_node_t *node = tree->root;
while (node) {
@ -541,6 +549,10 @@ wmem_tree_lookup32(wmem_tree_t *tree, guint32 key)
void *
wmem_tree_lookup32_le(wmem_tree_t *tree, guint32 key)
{
if (!tree) {
return NULL;
}
wmem_tree_node_t *node = tree->root;
while (node) {