--- /dev/null
+From bb6f6bae0ba6a95f481485f9d74a89072f2c800c Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Tue, 22 Feb 2022 21:56:48 +0000
+Subject: [PATCH 2/8] Fix longjump() compiler warnings.
+
+---
+ src/option.c | 36 +++++++++++++++---------------------
+ 1 file changed, 15 insertions(+), 21 deletions(-)
+
+diff --git a/src/option.c b/src/option.c
+index d9dd6a3..c354ddf 100644
+--- a/src/option.c
++++ b/src/option.c
+@@ -4974,26 +4974,20 @@ err:
+ return 1;
+ }
+
+-static void read_file(char *file, FILE *f, int hard_opt)
++static void read_file(char *file, FILE *f, int hard_opt, int from_script)
+ {
+ volatile int lineno = 0;
+ char *buff = daemon->namebuff;
+
+ while (fgets(buff, MAXDNAME, f))
+ {
+- int white, i, script = 0;
++ int white, i;
+ volatile int option;
+ char *errmess, *p, *arg, *start;
+ size_t len;
+
+- if (hard_opt == LOPT_CONF_SCRIPT)
+- {
+- hard_opt = 0;
+- script = 1;
+- }
+-
+ option = (hard_opt == LOPT_REV_SERV) ? 0 : hard_opt;
+-
++
+ /* Memory allocation failure longjmps here if mem_recover == 1 */
+ if (option != 0 || hard_opt == LOPT_REV_SERV)
+ {
+@@ -5001,7 +4995,7 @@ static void read_file(char *file, FILE *f, int hard_opt)
+ continue;
+ mem_recover = 1;
+ }
+-
++
+ arg = NULL;
+ lineno++;
+ errmess = NULL;
+@@ -5107,7 +5101,7 @@ static void read_file(char *file, FILE *f, int hard_opt)
+
+ if (errmess || !one_opt(option, arg, daemon->namebuff, _("error"), 0, hard_opt == LOPT_REV_SERV))
+ {
+- if (script)
++ if (from_script)
+ sprintf(daemon->namebuff + strlen(daemon->namebuff), _(" in output from %s"), file);
+ else
+ sprintf(daemon->namebuff + strlen(daemon->namebuff), _(" at line %d of %s"), lineno, file);
+@@ -5153,8 +5147,14 @@ static int one_file(char *file, int hard_opt)
+ hard_opt = 0;
+ nofile_ok = 1;
+ }
+-
+- if (hard_opt == 0 && strcmp(file, "-") == 0)
++
++ if (hard_opt == LOPT_CONF_SCRIPT)
++ {
++ hard_opt = 0;
++ do_popen = 1;
++ }
++
++ if (hard_opt == 0 && !do_popen && strcmp(file, "-") == 0)
+ {
+ if (read_stdin == 1)
+ return 1;
+@@ -5167,12 +5167,6 @@ static int one_file(char *file, int hard_opt)
+ /* ignore repeated files. */
+ struct stat statbuf;
+
+- if (hard_opt == LOPT_CONF_SCRIPT)
+- {
+- hard_opt = 0;
+- do_popen = 1;
+- }
+-
+ if (hard_opt == 0 && stat(file, &statbuf) == 0)
+ {
+ struct fileread *r;
+@@ -5211,7 +5205,7 @@ static int one_file(char *file, int hard_opt)
+ }
+ }
+
+- read_file(file, f, do_popen ? LOPT_CONF_SCRIPT : hard_opt);
++ read_file(file, f, hard_opt, do_popen);
+
+ if (do_popen)
+ {
+@@ -5365,7 +5359,7 @@ void read_servers_file(void)
+ }
+
+ mark_servers(SERV_FROM_FILE);
+- read_file(daemon->servers_file, f, LOPT_REV_SERV);
++ read_file(daemon->servers_file, f, LOPT_REV_SERV, 0);
+ fclose(f);
+ cleanup_servers();
+ check_servers(0);
+--
+2.35.1
+