From 01476c4d6b92572a02824719ea5e71d34b0f72ce Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Mon, 8 Feb 2016 22:51:14 +0100 Subject: [PATCH] lib-http: server: Fixed datastack framing problem in error handling of response sending. The returned error string crossed a data stack frame, which wasn't handled correctly. --- src/lib-http/http-server-response.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib-http/http-server-response.c b/src/lib-http/http-server-response.c index 0ad0a8aad6..3fb7003101 100644 --- a/src/lib-http/http-server-response.c +++ b/src/lib-http/http-server-response.c @@ -418,10 +418,15 @@ static int http_server_response_send_real(struct http_server_response *resp, int http_server_response_send(struct http_server_response *resp, const char **error_r) { + char *errstr = NULL; int ret; T_BEGIN { ret = http_server_response_send_real(resp, error_r); + if (ret < 0) + errstr = i_strdup(*error_r); } T_END; + *error_r = t_strdup(errstr); + i_free(errstr); return ret; } -- 2.47.3