error_response(): Prevent a theoretical memory leak
authorFabian Keil <fk@fabiankeil.de>
Tue, 9 Sep 2025 12:42:54 +0000 (14:42 +0200)
committerFabian Keil <fk@fabiankeil.de>
Thu, 9 Oct 2025 09:51:07 +0000 (11:51 +0200)
Reported by Joshua Rogers.

cgi.c

diff --git a/cgi.c b/cgi.c
index 4cffc92..91ea06e 100644 (file)
--- a/cgi.c
+++ b/cgi.c
@@ -914,9 +914,9 @@ struct http_response *error_response(struct client_state *csp,
    }
    err = string_append(&path, csp->http->path);
 
+   if (!err) err = map(exports, "path", 1, html_encode_and_free_original(path), 0);
    if (!err) err = map(exports, "host", 1, html_encode(csp->http->host), 0);
    if (!err) err = map(exports, "hostport", 1, html_encode(csp->http->hostport), 0);
-   if (!err) err = map(exports, "path", 1, html_encode_and_free_original(path), 0);
    if (!err) err = map(exports, "protocol", 1, csp->http->ssl ? "https://" : "http://", 1);
    if (!err)
    {