changeset 18882:eddc7a17dd46

lib-http: http_client_request_send() failure returned already-freed error string.
author Timo Sirainen <tss@iki.fi>
date Thu, 18 Jun 2015 11:10:05 +0300
parents 7f7b77feb9ce
children 771254b34a42
files src/lib-http/http-client-request.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-http/http-client-request.c	Wed Jun 17 16:37:37 2015 +0300
+++ b/src/lib-http/http-client-request.c	Thu Jun 18 11:10:05 2015 +0300
@@ -832,11 +832,16 @@
 int http_client_request_send(struct http_client_request *req,
 			     const char **error_r)
 {
+	char *errstr = NULL;
 	int ret;
 
 	T_BEGIN {
 		ret = http_client_request_send_real(req, error_r);
+		if (ret < 0)
+			errstr = i_strdup(*error_r);
 	} T_END;
+	*error_r = t_strdup(errstr);
+	i_free(errstr);
 	return ret;
 }