Mercurial > dovecot > core-2.2
changeset 19729:283300040a6e
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.
author | Stephan Bosch <stephan@rename-it.nl> |
---|---|
date | Mon, 08 Feb 2016 22:51:14 +0100 |
parents | ea58eba051b5 |
children | 5a31f0ae5b6f |
files | src/lib-http/http-server-response.c |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-http/http-server-response.c Mon Feb 08 22:49:28 2016 +0100 +++ b/src/lib-http/http-server-response.c Mon Feb 08 22:51:14 2016 +0100 @@ -418,10 +418,15 @@ 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; }