aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-08-14 12:39:55 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-08-14 12:39:55 +0000
commitc859294ca2eabf65c680fe311596388b36a5fcb8 (patch)
treedb3396c3b4d74a2259ab509bdf306a3783dc97f4 /src
parentf058451871879392ed9295daed3f5310e85f3986 (diff)
downloadpostgresql-c859294ca2eabf65c680fe311596388b36a5fcb8.tar.gz
postgresql-c859294ca2eabf65c680fe311596388b36a5fcb8.zip
Remove hash_destroy calls in hash_create's failure paths. As noted by
a Coverity warning, these are risky since the hashtable isn't necessarily fully set up yet. They're unnecessary anyway: a deletable hashtable should be in a memory context that will be cleared following elog(ERROR). Per report from Martijn van Oosterhout.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/hash/dynahash.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c
index 23200667afd..b2974da999a 100644
--- a/src/backend/utils/hash/dynahash.c
+++ b/src/backend/utils/hash/dynahash.c
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/hash/dynahash.c,v 1.70 2006/07/22 23:04:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/hash/dynahash.c,v 1.71 2006/08/14 12:39:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -392,10 +392,7 @@ hash_create(const char *tabname, long nelem, HASHCTL *info, int flags)
/* Build the hash directory structure */
if (!init_htab(hashp, nelem))
- {
- hash_destroy(hashp);
elog(ERROR, "failed to initialize hash table");
- }
/*
* For a shared hash table, preallocate the requested number of elements.
@@ -409,12 +406,9 @@ hash_create(const char *tabname, long nelem, HASHCTL *info, int flags)
nelem < hctl->nelem_alloc)
{
if (!element_alloc(hashp, (int) nelem))
- {
- hash_destroy(hashp);
ereport(ERROR,
(errcode(ERRCODE_OUT_OF_MEMORY),
errmsg("out of memory")));
- }
}
return hashp;