BUG/MEDIUM: init: segfault if global._51d_property_names is not initialized

When using the "51d" converter without specifying the list of 51Degrees
properties to detect (see parameter "51degrees-property-name-list"), the
"global._51d_property_names" could be left uninitialized which will lead to
segfault during init.
diff --git a/src/haproxy.c b/src/haproxy.c
index d45914f..c73d2e0 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -186,6 +186,9 @@
 		.separator = '|',
 	},
 #endif
+#ifdef USE_51DEGREES
+	._51d_property_names = LIST_HEAD_INIT(global._51d_property_names),
+#endif
 	/* others NULL OK */
 };
 
@@ -548,7 +551,7 @@
 #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 @@
 		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);