diff --git a/src/haproxy.c b/src/haproxy.c index d45914f59..c73d2e0d6 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -185,6 +185,9 @@ struct global global = { .jsonpath = 0, .separator = '|', }, +#endif +#ifdef USE_51DEGREES + ._51d_property_names = LIST_HEAD_INIT(global._51d_property_names), #endif /* others NULL OK */ }; @@ -548,7 +551,7 @@ void init(int argc, char **argv) #ifdef USE_51DEGREES int i = 0; struct _51d_property_names *name; - char **_51d_property_list; + char **_51d_property_list = NULL; fiftyoneDegreesDataSetInitStatus _51d_dataset_status = DATA_SET_INIT_STATUS_NOT_SET; #endif @@ -1099,14 +1102,16 @@ void init(int argc, char **argv) exit(1); #ifdef USE_51DEGREES - i = 0; - list_for_each_entry(name, &global._51d_property_names, list) - ++i; - _51d_property_list = calloc(i, sizeof(char *)); + if (!LIST_ISEMPTY(&global._51d_property_names)) { + i = 0; + list_for_each_entry(name, &global._51d_property_names, list) + ++i; + _51d_property_list = calloc(i, sizeof(char *)); - i = 0; - list_for_each_entry(name, &global._51d_property_names, list) - _51d_property_list[i++] = name->name; + i = 0; + list_for_each_entry(name, &global._51d_property_names, list) + _51d_property_list[i++] = name->name; + } #ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED _51d_dataset_status = fiftyoneDegreesInitWithPropertyArray(global._51d_data_file_path, _51d_property_list, i);