aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2012-03-16 20:30:19 +0200
committerPeter Eisentraut <peter_e@gmx.net>2012-03-16 20:35:00 +0200
commitd4318483e151b41cd663e7b36a5539d3c5048c5a (patch)
treefd8c154dca8561f594b3a477f8e69df94770c1e3
parent598bb8cdbd9c2554bd8acfc51c9fed473a7d37bc (diff)
downloadpostgresql-d4318483e151b41cd663e7b36a5539d3c5048c5a.tar.gz
postgresql-d4318483e151b41cd663e7b36a5539d3c5048c5a.zip
libpq: Fix minor memory leaks
When using connection info arrays with a conninfo string in the dbname slot, some memory would be leaked if an error occurred while processing the following array slots. found by Coverity
-rw-r--r--src/interfaces/libpq/fe-connect.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index eece99ab1d6..817d83b9cb4 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -4303,6 +4303,7 @@ conninfo_array_parse(const char *const * keywords, const char *const * values,
{
printfPQExpBuffer(errorMessage,
libpq_gettext("out of memory\n"));
+ PQconninfoFree(str_options);
return NULL;
}
memcpy(options, PQconninfoOptions, sizeof(PQconninfoOptions));
@@ -4330,6 +4331,7 @@ conninfo_array_parse(const char *const * keywords, const char *const * values,
libpq_gettext("invalid connection option \"%s\"\n"),
pname);
PQconninfoFree(options);
+ PQconninfoFree(str_options);
return NULL;
}
@@ -4374,6 +4376,7 @@ conninfo_array_parse(const char *const * keywords, const char *const * values,
printfPQExpBuffer(errorMessage,
libpq_gettext("out of memory\n"));
PQconninfoFree(options);
+ PQconninfoFree(str_options);
return NULL;
}
}