summaryrefslogtreecommitdiff
path: root/contrib/oid2name/oid2name.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/oid2name/oid2name.c')
-rw-r--r--contrib/oid2name/oid2name.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/contrib/oid2name/oid2name.c b/contrib/oid2name/oid2name.c
index e5eeec21c1..5a2aa1dd0e 100644
--- a/contrib/oid2name/oid2name.c
+++ b/contrib/oid2name/oid2name.c
@@ -261,7 +261,8 @@ PGconn *
sql_conn(struct options * my_opts)
{
PGconn *conn;
- char *password = NULL;
+ bool have_password = false;
+ char password[100];
bool new_pass;
/*
@@ -282,7 +283,7 @@ sql_conn(struct options * my_opts)
keywords[2] = "user";
values[2] = my_opts->username;
keywords[3] = "password";
- values[3] = password;
+ values[3] = have_password ? password : NULL;
keywords[4] = "dbname";
values[4] = my_opts->dbname;
keywords[5] = "fallback_application_name";
@@ -302,17 +303,15 @@ sql_conn(struct options * my_opts)
if (PQstatus(conn) == CONNECTION_BAD &&
PQconnectionNeedsPassword(conn) &&
- password == NULL)
+ !have_password)
{
PQfinish(conn);
- password = simple_prompt("Password: ", 100, false);
+ simple_prompt("Password: ", password, sizeof(password), false);
+ have_password = true;
new_pass = true;
}
} while (new_pass);
- if (password)
- free(password);
-
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) == CONNECTION_BAD)
{