Promote pg_dumpall shell/connstr quoting functions to src/fe_utils.

Rename these newly-extern functions with terms more typical of their new
neighbors.  No functional changes; a subsequent commit will use them in
more places.  Back-patch to 9.1 (all supported versions).  Back branches
lack src/fe_utils, so instead rename the functions in place; the
subsequent commit will copy them into the other programs using them.

Security: CVE-2016-5424
This commit is contained in:
Noah Misch 2016-08-08 10:07:46 -04:00
parent 395d565ac7
commit c1b048f498

View File

@ -49,8 +49,8 @@ static void makeAlterConfigCommand(PGconn *conn, const char *arrayitem,
const char *name2);
static void dumpDatabases(PGconn *conn);
static void dumpTimestamp(char *msg);
static void doShellQuoting(PQExpBuffer buf, const char *str);
static void doConnStrQuoting(PQExpBuffer buf, const char *str);
static void appendShellString(PQExpBuffer buf, const char *str);
static void appendConnStrVal(PQExpBuffer buf, const char *str);
static int runPgDump(const char *dbname);
static void buildShSecLabels(PGconn *conn, const char *catalog_name,
@ -213,7 +213,7 @@ main(int argc, char *argv[])
case 'f':
filename = pg_strdup(optarg);
appendPQExpBuffer(pgdumpopts, " -f ");
doShellQuoting(pgdumpopts, filename);
appendShellString(pgdumpopts, filename);
break;
case 'g':
@ -254,7 +254,7 @@ main(int argc, char *argv[])
case 'S':
appendPQExpBuffer(pgdumpopts, " -S ");
doShellQuoting(pgdumpopts, optarg);
appendShellString(pgdumpopts, optarg);
break;
case 't':
@ -290,13 +290,13 @@ main(int argc, char *argv[])
case 2:
appendPQExpBuffer(pgdumpopts, " --lock-wait-timeout ");
doShellQuoting(pgdumpopts, optarg);
appendShellString(pgdumpopts, optarg);
break;
case 3:
use_role = pg_strdup(optarg);
appendPQExpBuffer(pgdumpopts, " --role ");
doShellQuoting(pgdumpopts, use_role);
appendShellString(pgdumpopts, use_role);
break;
default:
@ -1699,9 +1699,9 @@ runPgDump(const char *dbname)
* string.
*/
appendPQExpBuffer(connstrbuf, "%s dbname=", connstr);
doConnStrQuoting(connstrbuf, dbname);
appendConnStrVal(connstrbuf, dbname);
doShellQuoting(cmd, connstrbuf->data);
appendShellString(cmd, connstrbuf->data);
appendPQExpBuffer(cmd, "%s", SYSTEMQUOTE);
@ -1983,7 +1983,7 @@ constructConnStr(const char **keywords, const char **values)
appendPQExpBufferChar(buf, ' ');
firstkeyword = false;
appendPQExpBuffer(buf, "%s=", keywords[i]);
doConnStrQuoting(buf, values[i]);
appendConnStrVal(buf, values[i]);
}
connstr = pg_strdup(buf->data);
@ -2076,7 +2076,7 @@ dumpTimestamp(char *msg)
* string
*/
static void
doConnStrQuoting(PQExpBuffer buf, const char *str)
appendConnStrVal(PQExpBuffer buf, const char *str)
{
const char *s;
bool needquotes;
@ -2125,7 +2125,7 @@ doConnStrQuoting(PQExpBuffer buf, const char *str)
* there eventually leads to errors here.
*/
static void
doShellQuoting(PQExpBuffer buf, const char *str)
appendShellString(PQExpBuffer buf, const char *str)
{
const char *p;