]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: chunks: Realloc trash buffers only after the config is parsed and checked
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 29 Aug 2017 14:46:57 +0000 (16:46 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 5 Sep 2017 08:27:46 +0000 (10:27 +0200)
Trash buffers are reallocated when "tune.bufsize" parameter is changed. Here, we
just move the realloc after the configuration parsing.

Given that the config parser doesn't rely on the trash size, it should be
harmless.

src/cfgparse.c
src/haproxy.c

index 7e939eea199a30bb585edc04bf7f35a36808b689..c2115e6a2b808a078f104aec99006c578377b87f 100644 (file)
@@ -773,11 +773,6 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm)
                        err_code |= ERR_ALERT | ERR_FATAL;
                        goto out;
                }
-               if (!init_trash_buffers()) {
-                       Alert("parsing [%s:%d] : failed to initialize trash buffers.\n", file, linenum);
-                       err_code |= ERR_ALERT | ERR_FATAL;
-                       goto out;
-               }
        }
        else if (!strcmp(args[0], "tune.maxrewrite")) {
                if (alertif_too_many_args(1, file, linenum, args, &err_code))
index c27fca0ddc59462d665a74715c83d3e8f4d67d4f..efc4da552aa0893792685e10bb0e1b06db976310 100644 (file)
@@ -1712,6 +1712,12 @@ static void init(int argc, char **argv)
        if (global.nbproc < 1)
                global.nbproc = 1;
 
+       /* Realloc trash buffers because global.tune.bufsize may have changed */
+       if (!init_trash_buffers()) {
+               Alert("failed to initialize trash buffers.\n");
+               exit(1);
+       }
+
        swap_buffer = calloc(1, global.tune.bufsize);
        get_http_auth_buff = calloc(1, global.tune.bufsize);
        static_table_key = calloc(1, sizeof(*static_table_key));