Sanity check 'conninfo' parameter

Catch errors early, it makes everyone's life easier.
This commit is contained in:
Ian Barwick
2015-10-01 09:06:27 +09:00
parent a8e5c68d03
commit 9bb6befa25

View File

@@ -111,6 +111,10 @@ parse_config(t_configuration_options *options)
char name[MAXLEN];
char value[MAXLEN];
/* For sanity-checking provided conninfo string */
PQconninfoOption *conninfo_options;
char *conninfo_errmsg = NULL;
fp = fopen(config_file_path, "r");
/*
@@ -310,6 +314,18 @@ parse_config(t_configuration_options *options)
exit(ERR_BAD_CONFIG);
}
/* Sanity check the provided conninfo string
*
* NOTE: this verifies the string format and checks for valid options
* but does not sanity check values
*/
conninfo_options = PQconninfoParse(options->conninfo, &conninfo_errmsg);
if (conninfo_options == NULL)
{
log_err(_("Parameter 'conninfo' is invalid: %s"), conninfo_errmsg);
exit(ERR_BAD_CONFIG);
}
/* The following checks are for valid parameter values */
if (options->master_response_timeout <= 0)
{