From: Stephan Bosch Date: Mon, 8 Feb 2016 21:51:14 +0000 (+0100) Subject: lib-http: server: Fixed datastack framing problem in error handling of response sending. X-Git-Tag: 2.2.22.rc1~191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01476c4d6b92572a02824719ea5e71d34b0f72ce;p=thirdparty%2Fdovecot%2Fcore.git 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. --- 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; }