From c9eb1bfcc06533ec4b20954a197cf64468b8f0ef Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Tue, 13 Feb 2018 09:08:40 +0900 Subject: [PATCH] Always initialise t_conninfo_param_list structures --- dbutils.c | 11 +++++++---- repmgr-action-cluster.c | 2 +- repmgr-action-node.c | 2 +- repmgr-action-standby.c | 10 +++++----- repmgr-client.c | 4 ++-- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/dbutils.c b/dbutils.c index 1eaad68d..023f9f84 100644 --- a/dbutils.c +++ b/dbutils.c @@ -437,15 +437,18 @@ free_conninfo_params(t_conninfo_param_list *param_list) for (c = 0; c < param_list->size; c++) { - if (param_list->keywords[c] != NULL) + if (param_list->keywords != NULL && param_list->keywords[c] != NULL) pfree(param_list->keywords[c]); - if (param_list->values[c] != NULL) + if (param_list->values != NULL && param_list->values[c] != NULL) pfree(param_list->values[c]); } - pfree(param_list->keywords); - pfree(param_list->values); + if (param_list->keywords != NULL) + pfree(param_list->keywords); + + if (param_list->values != NULL) + pfree(param_list->values); } diff --git a/repmgr-action-cluster.c b/repmgr-action-cluster.c index da9fa47b..4e527d2e 100644 --- a/repmgr-action-cluster.c +++ b/repmgr-action-cluster.c @@ -1150,7 +1150,7 @@ build_cluster_crosscheck(t_node_status_cube ***dest_cube, int *name_length) } else { - t_conninfo_param_list remote_conninfo; + t_conninfo_param_list remote_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; char *host = NULL; PQExpBufferData quoted_command; diff --git a/repmgr-action-node.c b/repmgr-action-node.c index a1485e90..b1fddbff 100644 --- a/repmgr-action-node.c +++ b/repmgr-action-node.c @@ -922,7 +922,7 @@ do_node_check_replication_connection(void) PGconn *repl_conn = NULL; t_node_info node_record = T_NODE_INFO_INITIALIZER; RecordStatus record_status = RECORD_NOT_FOUND; - t_conninfo_param_list remote_conninfo; + t_conninfo_param_list remote_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; PQExpBufferData output; diff --git a/repmgr-action-standby.c b/repmgr-action-standby.c index ebcbbb8a..6da5e1d2 100644 --- a/repmgr-action-standby.c +++ b/repmgr-action-standby.c @@ -57,7 +57,7 @@ static bool upstream_conninfo_found = false; static int upstream_node_id = UNKNOWN_NODE_ID; static char upstream_data_directory[MAXPGPATH]; -static t_conninfo_param_list recovery_conninfo; +static t_conninfo_param_list recovery_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; static char recovery_conninfo_str[MAXLEN] = ""; static char upstream_repluser[NAMEDATALEN] = ""; @@ -1678,7 +1678,7 @@ do_standby_follow(void) int follow_error_code = SUCCESS; uint64 local_system_identifier = UNKNOWN_SYSTEM_IDENTIFIER; - t_conninfo_param_list repl_conninfo; + t_conninfo_param_list repl_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; PGconn *repl_conn = NULL; t_system_identification primary_identification = T_SYSTEM_IDENTIFICATION_INITIALIZER; @@ -1979,7 +1979,7 @@ do_standby_follow_internal(PGconn *primary_conn, t_node_info *primary_node_recor parse_conninfo_string(primary_node_record->conninfo, &recovery_conninfo, errmsg, true); { - t_conninfo_param_list local_node_conninfo; + t_conninfo_param_list local_node_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; bool parse_success; initialize_conninfo_params(&local_node_conninfo, false); @@ -3932,7 +3932,7 @@ check_upstream_config(PGconn *conn, int server_version_num, t_node_info *node_in int min_replication_connections = 1, possible_replication_connections = 0; - t_conninfo_param_list repl_conninfo; + t_conninfo_param_list repl_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; /* * Make a copy of the connection parameter arrays, and append @@ -5374,7 +5374,7 @@ write_primary_conninfo(char *line, t_conninfo_param_list *param_list) bool password_provided = false; int c; char *escaped = NULL; - t_conninfo_param_list env_conninfo; + t_conninfo_param_list env_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; initialize_conninfo_params(&env_conninfo, true); diff --git a/repmgr-client.c b/repmgr-client.c index e6b5304c..b00566b1 100644 --- a/repmgr-client.c +++ b/repmgr-client.c @@ -72,7 +72,7 @@ t_runtime_options runtime_options = T_RUNTIME_OPTIONS_INITIALIZER; t_configuration_options config_file_options = T_CONFIGURATION_OPTIONS_INITIALIZER; /* conninfo params for the node we're operating on */ -t_conninfo_param_list source_conninfo; +t_conninfo_param_list source_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; bool config_file_required = true; char pg_bindir[MAXLEN] = ""; @@ -94,7 +94,7 @@ static ItemList cli_warnings = {NULL, NULL}; int main(int argc, char **argv) { - t_conninfo_param_list default_conninfo; + t_conninfo_param_list default_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER; int optindex; int c;