CLEANUP: map: Avoid memory leak in out-of-memory condition.
authorAndreas Seltenreich <andreas.seltenreich@credativ.de>
Thu, 3 Mar 2016 19:32:23 +0000 (20:32 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 8 Mar 2016 11:55:06 +0000 (12:55 +0100)
This memory leak of about 100 bytes occurs only if there is an error
condidtion during evaluation of a "map" directive in the configuration
file.  This evaluation only happens once on startup because haproxy
does not have a mechanism for re-loading the configuration file during
run-time.  The startup will be aborted anyway due to error conditions
raised.

Nevertheless fix it to silence warnings of static code analysis tools
and be safe against future revisions of the code.

Found in haproxy 1.5.14.

src/map.c

index a28ceda..ac1c00a 100644 (file)
--- a/src/map.c
+++ b/src/map.c
@@ -126,6 +126,7 @@ int sample_load_map(struct arg *arg, struct sample_conv *conv,
        default:
                memprintf(err, "map: internal haproxy error: no default parse case for the input type <%d>.",
                          conv->out_type);
+               free(desc);
                return 0;
        }