|
From 106cb89907ea6eab0073708bb8d6f56d7fc64509 Mon Sep 17 00:00:00 2001
|
|
From: Willy Tarreau <w@1wt.eu>
|
|
Date: Tue, 25 Oct 2016 17:05:56 +0200
|
|
Subject: [PATCH 14/26] BUG/MINOR: systemd: check return value of calloc()
|
|
|
|
The wrapper is not the best reliable thing in the universe, so start
|
|
by adding at least the minimum expected controls :-/
|
|
|
|
To be backported to 1.5 and 1.6.
|
|
(cherry picked from commit 3747ea07ce6b647b86559383f7d09b42550d42f3)
|
|
---
|
|
src/haproxy-systemd-wrapper.c | 10 ++++++++--
|
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/haproxy-systemd-wrapper.c b/src/haproxy-systemd-wrapper.c
|
|
index 84d2e17..15c48ca 100644
|
|
--- a/src/haproxy-systemd-wrapper.c
|
|
+++ b/src/haproxy-systemd-wrapper.c
|
|
@@ -77,11 +77,17 @@ static void spawn_haproxy(char **pid_strv, int nb_pid)
|
|
|
|
pid = fork();
|
|
if (!pid) {
|
|
- /* 3 for "haproxy -Ds -sf" */
|
|
- char **argv = calloc(4 + main_argc + nb_pid + 1, sizeof(char *));
|
|
+ char **argv;
|
|
int i;
|
|
int argno = 0;
|
|
|
|
+ /* 3 for "haproxy -Ds -sf" */
|
|
+ argv = calloc(4 + main_argc + nb_pid + 1, sizeof(char *));
|
|
+ if (!argv) {
|
|
+ fprintf(stderr, SD_NOTICE "haproxy-systemd-wrapper: failed to calloc(), please try again later.\n");
|
|
+ exit(1);
|
|
+ }
|
|
+
|
|
reset_signal_handler();
|
|
locate_haproxy(haproxy_bin, 512);
|
|
argv[argno++] = haproxy_bin;
|
|
--
|
|
2.7.3
|
|
|