aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-connect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/libpq/fe-connect.c')
-rw-r--r--src/interfaces/libpq/fe-connect.c211
1 files changed, 70 insertions, 141 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 6e936bbff30..057c9da0ede 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -540,8 +540,7 @@ pqFreeCommandQueue(PGcmdQueueEntry *queue)
PGcmdQueueEntry *cur = queue;
queue = cur->next;
- if (cur->query)
- free(cur->query);
+ free(cur->query);
free(cur);
}
}
@@ -593,8 +592,7 @@ pqDropServerData(PGconn *conn)
conn->sversion = 0;
/* Drop large-object lookup data */
- if (conn->lobjfuncs)
- free(conn->lobjfuncs);
+ free(conn->lobjfuncs);
conn->lobjfuncs = NULL;
/* Reset assorted other per-connection state */
@@ -602,8 +600,7 @@ pqDropServerData(PGconn *conn)
conn->auth_req_received = false;
conn->password_needed = false;
conn->write_failed = false;
- if (conn->write_err_msg)
- free(conn->write_err_msg);
+ free(conn->write_err_msg);
conn->write_err_msg = NULL;
conn->be_pid = 0;
conn->be_key = 0;
@@ -898,8 +895,7 @@ fillPGconn(PGconn *conn, PQconninfoOption *connOptions)
{
char **connmember = (char **) ((char *) conn + option->connofs);
- if (*connmember)
- free(*connmember);
+ free(*connmember);
*connmember = strdup(tmp);
if (*connmember == NULL)
{
@@ -1113,8 +1109,7 @@ connectOptions2(PGconn *conn)
}
else
{
- if (ch->host)
- free(ch->host);
+ free(ch->host);
/*
* This bit selects the default host location. If you change
@@ -1186,8 +1181,7 @@ connectOptions2(PGconn *conn)
*/
if (conn->pguser == NULL || conn->pguser[0] == '\0')
{
- if (conn->pguser)
- free(conn->pguser);
+ free(conn->pguser);
conn->pguser = pg_fe_getauthname(&conn->errorMessage);
if (!conn->pguser)
{
@@ -1201,8 +1195,7 @@ connectOptions2(PGconn *conn)
*/
if (conn->dbName == NULL || conn->dbName[0] == '\0')
{
- if (conn->dbName)
- free(conn->dbName);
+ free(conn->dbName);
conn->dbName = strdup(conn->pguser);
if (!conn->dbName)
goto oom_error;
@@ -1221,8 +1214,7 @@ connectOptions2(PGconn *conn)
if (pqGetHomeDirectory(homedir, sizeof(homedir)))
{
- if (conn->pgpassfile)
- free(conn->pgpassfile);
+ free(conn->pgpassfile);
conn->pgpassfile = malloc(MAXPGPATH);
if (!conn->pgpassfile)
goto oom_error;
@@ -1548,8 +1540,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
/* Insert dbName parameter value into struct */
if (dbName && dbName[0] != '\0')
{
- if (conn->dbName)
- free(conn->dbName);
+ free(conn->dbName);
conn->dbName = strdup(dbName);
if (!conn->dbName)
goto oom_error;
@@ -1562,8 +1553,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
*/
if (pghost && pghost[0] != '\0')
{
- if (conn->pghost)
- free(conn->pghost);
+ free(conn->pghost);
conn->pghost = strdup(pghost);
if (!conn->pghost)
goto oom_error;
@@ -1571,8 +1561,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
if (pgport && pgport[0] != '\0')
{
- if (conn->pgport)
- free(conn->pgport);
+ free(conn->pgport);
conn->pgport = strdup(pgport);
if (!conn->pgport)
goto oom_error;
@@ -1580,8 +1569,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
if (pgoptions && pgoptions[0] != '\0')
{
- if (conn->pgoptions)
- free(conn->pgoptions);
+ free(conn->pgoptions);
conn->pgoptions = strdup(pgoptions);
if (!conn->pgoptions)
goto oom_error;
@@ -1589,8 +1577,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
if (login && login[0] != '\0')
{
- if (conn->pguser)
- free(conn->pguser);
+ free(conn->pguser);
conn->pguser = strdup(login);
if (!conn->pguser)
goto oom_error;
@@ -1598,8 +1585,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
if (pwd && pwd[0] != '\0')
{
- if (conn->pgpass)
- free(conn->pgpass);
+ free(conn->pgpass);
conn->pgpass = strdup(pwd);
if (!conn->pgpass)
goto oom_error;
@@ -4044,10 +4030,8 @@ makeEmptyPGconn(void)
static void
freePGconn(PGconn *conn)
{
- int i;
-
/* let any event procs clean up their state data */
- for (i = 0; i < conn->nEvents; i++)
+ for (int i = 0; i < conn->nEvents; i++)
{
PGEventConnDestroy evt;
@@ -4058,114 +4042,69 @@ freePGconn(PGconn *conn)
}
/* clean up pg_conn_host structures */
- if (conn->connhost != NULL)
+ for (int i = 0; i < conn->nconnhost; ++i)
{
- for (i = 0; i < conn->nconnhost; ++i)
+ free(conn->connhost[i].host);
+ free(conn->connhost[i].hostaddr);
+ free(conn->connhost[i].port);
+ if (conn->connhost[i].password != NULL)
{
- if (conn->connhost[i].host != NULL)
- free(conn->connhost[i].host);
- if (conn->connhost[i].hostaddr != NULL)
- free(conn->connhost[i].hostaddr);
- if (conn->connhost[i].port != NULL)
- free(conn->connhost[i].port);
- if (conn->connhost[i].password != NULL)
- {
- explicit_bzero(conn->connhost[i].password, strlen(conn->connhost[i].password));
- free(conn->connhost[i].password);
- }
+ explicit_bzero(conn->connhost[i].password, strlen(conn->connhost[i].password));
+ free(conn->connhost[i].password);
}
- free(conn->connhost);
}
-
- if (conn->client_encoding_initial)
- free(conn->client_encoding_initial);
- if (conn->events)
- free(conn->events);
- if (conn->pghost)
- free(conn->pghost);
- if (conn->pghostaddr)
- free(conn->pghostaddr);
- if (conn->pgport)
- free(conn->pgport);
- if (conn->connect_timeout)
- free(conn->connect_timeout);
- if (conn->pgtcp_user_timeout)
- free(conn->pgtcp_user_timeout);
- if (conn->pgoptions)
- free(conn->pgoptions);
- if (conn->appname)
- free(conn->appname);
- if (conn->fbappname)
- free(conn->fbappname);
- if (conn->dbName)
- free(conn->dbName);
- if (conn->replication)
- free(conn->replication);
- if (conn->pguser)
- free(conn->pguser);
+ free(conn->connhost);
+
+ free(conn->client_encoding_initial);
+ free(conn->events);
+ free(conn->pghost);
+ free(conn->pghostaddr);
+ free(conn->pgport);
+ free(conn->connect_timeout);
+ free(conn->pgtcp_user_timeout);
+ free(conn->pgoptions);
+ free(conn->appname);
+ free(conn->fbappname);
+ free(conn->dbName);
+ free(conn->replication);
+ free(conn->pguser);
if (conn->pgpass)
{
explicit_bzero(conn->pgpass, strlen(conn->pgpass));
free(conn->pgpass);
}
- if (conn->pgpassfile)
- free(conn->pgpassfile);
- if (conn->channel_binding)
- free(conn->channel_binding);
- if (conn->keepalives)
- free(conn->keepalives);
- if (conn->keepalives_idle)
- free(conn->keepalives_idle);
- if (conn->keepalives_interval)
- free(conn->keepalives_interval);
- if (conn->keepalives_count)
- free(conn->keepalives_count);
- if (conn->sslmode)
- free(conn->sslmode);
- if (conn->sslcert)
- free(conn->sslcert);
- if (conn->sslkey)
- free(conn->sslkey);
+ free(conn->pgpassfile);
+ free(conn->channel_binding);
+ free(conn->keepalives);
+ free(conn->keepalives_idle);
+ free(conn->keepalives_interval);
+ free(conn->keepalives_count);
+ free(conn->sslmode);
+ free(conn->sslcert);
+ free(conn->sslkey);
if (conn->sslpassword)
{
explicit_bzero(conn->sslpassword, strlen(conn->sslpassword));
free(conn->sslpassword);
}
- if (conn->sslrootcert)
- free(conn->sslrootcert);
- if (conn->sslcrl)
- free(conn->sslcrl);
- if (conn->sslcrldir)
- free(conn->sslcrldir);
- if (conn->sslcompression)
- free(conn->sslcompression);
- if (conn->sslsni)
- free(conn->sslsni);
- if (conn->requirepeer)
- free(conn->requirepeer);
- if (conn->ssl_min_protocol_version)
- free(conn->ssl_min_protocol_version);
- if (conn->ssl_max_protocol_version)
- free(conn->ssl_max_protocol_version);
- if (conn->gssencmode)
- free(conn->gssencmode);
- if (conn->krbsrvname)
- free(conn->krbsrvname);
- if (conn->gsslib)
- free(conn->gsslib);
- if (conn->connip)
- free(conn->connip);
+ free(conn->sslrootcert);
+ free(conn->sslcrl);
+ free(conn->sslcrldir);
+ free(conn->sslcompression);
+ free(conn->sslsni);
+ free(conn->requirepeer);
+ free(conn->ssl_min_protocol_version);
+ free(conn->ssl_max_protocol_version);
+ free(conn->gssencmode);
+ free(conn->krbsrvname);
+ free(conn->gsslib);
+ free(conn->connip);
/* Note that conn->Pfdebug is not ours to close or free */
- if (conn->write_err_msg)
- free(conn->write_err_msg);
- if (conn->inBuffer)
- free(conn->inBuffer);
- if (conn->outBuffer)
- free(conn->outBuffer);
- if (conn->rowBuf)
- free(conn->rowBuf);
- if (conn->target_session_attrs)
- free(conn->target_session_attrs);
+ free(conn->write_err_msg);
+ free(conn->inBuffer);
+ free(conn->outBuffer);
+ free(conn->rowBuf);
+ free(conn->target_session_attrs);
termPQExpBuffer(&conn->errorMessage);
termPQExpBuffer(&conn->workBuffer);
@@ -4433,8 +4372,7 @@ fail:
void
PQfreeCancel(PGcancel *cancel)
{
- if (cancel)
- free(cancel);
+ free(cancel);
}
@@ -5883,8 +5821,7 @@ conninfo_array_parse(const char *const *keywords, const char *const *values,
{
if (strcmp(options[k].keyword, str_option->keyword) == 0)
{
- if (options[k].val)
- free(options[k].val);
+ free(options[k].val);
options[k].val = strdup(str_option->val);
if (!options[k].val)
{
@@ -5912,8 +5849,7 @@ conninfo_array_parse(const char *const *keywords, const char *const *values,
/*
* Store the value, overriding previous settings
*/
- if (option->val)
- free(option->val);
+ free(option->val);
option->val = strdup(pvalue);
if (!option->val)
{
@@ -6344,8 +6280,7 @@ conninfo_uri_parse_options(PQconninfoOption *options, const char *uri,
cleanup:
termPQExpBuffer(&hostbuf);
termPQExpBuffer(&portbuf);
- if (buf)
- free(buf);
+ free(buf);
return retval;
}
@@ -6655,8 +6590,7 @@ conninfo_storeval(PQconninfoOption *connOptions,
}
}
- if (option->val)
- free(option->val);
+ free(option->val);
option->val = value_copy;
return option;
@@ -6735,16 +6669,11 @@ PQconninfo(PGconn *conn)
void
PQconninfoFree(PQconninfoOption *connOptions)
{
- PQconninfoOption *option;
-
if (connOptions == NULL)
return;
- for (option = connOptions; option->keyword != NULL; option++)
- {
- if (option->val != NULL)
- free(option->val);
- }
+ for (PQconninfoOption *option = connOptions; option->keyword != NULL; option++)
+ free(option->val);
free(connOptions);
}