[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnurl] 168/256: vtls: fix memory corruption
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnurl] 168/256: vtls: fix memory corruption |
Date: |
Fri, 06 Oct 2017 19:44:19 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnurl.
commit 955c21939e58c8ba59877fbb7d628445143241d1
Author: Jay Satiro <address@hidden>
AuthorDate: Wed Sep 6 23:39:21 2017 +0200
vtls: fix memory corruption
Ever since 70f1db321 (vtls: encapsulate SSL backend-specific data,
2017-07-28), the code handling HTTPS proxies was broken because the
pointer to the SSL backend data was not swapped between
conn->ssl[sockindex] and conn->proxy_ssl[sockindex] as intended, but
instead set to NULL (causing segmentation faults).
[jes: provided the commit message, tested and verified the patch]
Signed-off-by: Johannes Schindelin <address@hidden>
---
lib/vtls/vtls.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
index a1a301e7f..52f922841 100644
--- a/lib/vtls/vtls.c
+++ b/lib/vtls/vtls.c
@@ -206,10 +206,20 @@ ssl_connect_init_proxy(struct connectdata *conn, int
sockindex)
DEBUGASSERT(conn->bits.proxy_ssl_connected[sockindex]);
if(ssl_connection_complete == conn->ssl[sockindex].state &&
!conn->proxy_ssl[sockindex].use) {
+ struct ssl_backend_data *pbdata;
+
if(!Curl_ssl->support_https_proxy)
return CURLE_NOT_BUILT_IN;
+
+ /* The pointers to the ssl backend data, which is opaque here, are swapped
+ rather than move the contents. */
+ pbdata = conn->proxy_ssl[sockindex].backend;
conn->proxy_ssl[sockindex] = conn->ssl[sockindex];
+
memset(&conn->ssl[sockindex], 0, sizeof(conn->ssl[sockindex]));
+ memset(pbdata, 0, Curl_ssl->sizeof_ssl_backend_data);
+
+ conn->ssl[sockindex].backend = pbdata;
}
return CURLE_OK;
}
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnurl] 244/256: libcurl-tutorial: fix two typos., (continued)
- [GNUnet-SVN] [gnurl] 244/256: libcurl-tutorial: fix two typos., gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 205/256: travis: on mac, don't install openssl or libidn, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 247/256: test1153: verify quoted double-qoutes in PWD response, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 228/256: ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 142/256: schannel: return CURLE_SSL_CACERT on failed verification, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 122/256: runtests.pl: Apply strippart to upload too., gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 180/256: travis: add build without HTTP/SMTP/IMAP, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 113/256: unit1301: fix error message on first test, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 214/256: mime: fix an explicit null dereference (#1899), gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 194/256: tests: enable gssapi in travis-ci linux build, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 168/256: vtls: fix memory corruption,
gnunet <=
- [GNUnet-SVN] [gnurl] 170/256: OpenSSL: fix yet another mistake while encapsulating SSL backend data, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 206/256: cookies: reject oversized cookies, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 176/256: ossfuzz: add some more handled CURL options, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 155/256: fixup data/test1135, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 200/256: conversions: fix several compiler warnings, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 239/256: Set and use more necessary options when some protocols are disabled, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 173/256: configure: fix curl_off_t check's include order, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 181/256: Curl_checkheaders: make it available for IMAP and SMTP too, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 250/256: proxy: read the "no_proxy" variable only if necessary, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 191/256: URL: on connection re-use, still pick the new remote port, gnunet, 2017/10/06