BUG/MINOR: peers: Missing calloc return value check in peers_register_table

A memory allocation failure happening during peers_register_table would
have resulted in a crash. This function is only called during init.

It was raised in GitHub issue #1233.
It could be backported to all stable branches.

(cherry picked from commit 208ff01b23eda19fe41780310f4d08ca86e28766)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit be5b1bb8cb683290f80856a3728ccaf3ad47b44b)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/peers.c b/src/peers.c
index e516c84..68fd6a2 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -3357,16 +3357,21 @@
 
 /*
  * Function used to register a table for sync on a group of peers
- *
+ * Returns 0 in case of success.
  */
-void peers_register_table(struct peers *peers, struct stktable *table)
+int peers_register_table(struct peers *peers, struct stktable *table)
 {
 	struct shared_table *st;
 	struct peer * curpeer;
 	int id = 0;
+	int retval = 0;
 
 	for (curpeer = peers->remote; curpeer; curpeer = curpeer->next) {
 		st = calloc(1,sizeof(*st));
+		if (!st) {
+			retval = 1;
+			break;
+		}
 		st->table = table;
 		st->next = curpeer->tables;
 		if (curpeer->tables)
@@ -3384,6 +3389,8 @@
 	}
 
 	table->sync_task = peers->sync_task;
+
+	return retval;
 }
 
 /*