PG-286: Check for NULL return on hash_search before using object.

Check if hash_search() function returns NULL before attempting to
use the object in hash_entry_alloc().
pull/184/head
Diego Fronza 2021-12-04 11:01:39 -03:00 committed by Hamid Akhtar
parent b798ffd461
commit 258fa7faa4
1 changed files with 4 additions and 3 deletions

View File

@ -140,7 +140,9 @@ hash_entry_alloc(pgssSharedState *pgss, pgssHashKey *key, int encoding)
} }
/* Find or create an entry with desired hash code */ /* Find or create an entry with desired hash code */
entry = (pgssEntry *) hash_search(pgss_hash, key, HASH_ENTER_NULL, &found); entry = (pgssEntry *) hash_search(pgss_hash, key, HASH_ENTER_NULL, &found);
if (!found) if (entry == NULL)
pgsm_log_error("hash_entry_alloc: OUT OF MEMORY");
else if (!found)
{ {
pgss->bucket_entry[pg_atomic_read_u64(&pgss->current_wbucket)]++; pgss->bucket_entry[pg_atomic_read_u64(&pgss->current_wbucket)]++;
/* New entry, initialize it */ /* New entry, initialize it */
@ -152,8 +154,7 @@ hash_entry_alloc(pgssSharedState *pgss, pgssHashKey *key, int encoding)
/* ... and don't forget the query text metadata */ /* ... and don't forget the query text metadata */
entry->encoding = encoding; entry->encoding = encoding;
} }
if (entry == NULL)
elog(DEBUG1, "%s", "pg_stat_monitor: out of memory");
return entry; return entry;
} }