[openssl] master update
dev at ddvo.net
dev at ddvo.net
Wed Mar 31 17:53:49 UTC 2021
The branch master has been updated
via 9e6f30e683fd0f243cf15d2bac2cdef2bcbbac12 (commit)
via 1e6174b1b58d3545b2ef34fd7262dadd2149ec15 (commit)
via 231837911980ff55a661e2509642442435082c90 (commit)
via f7c4d8622840b92a9f6cdb00d937d063a4efae9c (commit)
via e1428c62a1588def5af25678583f1a0166adf924 (commit)
from 534725fd4389782d693cff061f4d31b786058ab1 (commit)
- Log -----------------------------------------------------------------
commit 9e6f30e683fd0f243cf15d2bac2cdef2bcbbac12
Author: Dr. David von Oheimb <David.von.Oheimb at siemens.com>
Date: Mon Mar 29 19:39:57 2021 +0200
CHANGES.md: reflect OSSL_HTTP_REQ_CTX_i2d renamed to OSSL_HTTP_REQ_CTX_set1_req
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
commit 1e6174b1b58d3545b2ef34fd7262dadd2149ec15
Author: Dr. David von Oheimb <David.von.Oheimb at siemens.com>
Date: Mon Mar 8 13:47:33 2021 +0100
OSSL_HTTP_REQ_CTX_transfer(): improve distinction of send error vs. receive error
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
commit 231837911980ff55a661e2509642442435082c90
Author: Dr. David von Oheimb <David.von.Oheimb at siemens.com>
Date: Mon Mar 8 09:59:35 2021 +0100
OSSL_parse_url(): Improve handling of IPv6 addresses
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
commit f7c4d8622840b92a9f6cdb00d937d063a4efae9c
Author: Dr. David von Oheimb <David.von.Oheimb at siemens.com>
Date: Mon Mar 8 09:26:28 2021 +0100
80-test_cmp_http.t: Add diagnostic info on starting/stopping mock server
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
commit e1428c62a1588def5af25678583f1a0166adf924
Author: Dr. David von Oheimb <David.von.Oheimb at siemens.com>
Date: Mon Mar 8 09:25:54 2021 +0100
http_client.c: Prevent spurious error queue entry on NULL mem argument
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
-----------------------------------------------------------------------
Summary of changes:
CHANGES.md | 2 +-
crypto/http/http_client.c | 7 ++-----
crypto/http/http_lib.c | 5 ++---
test/http_test.c | 2 +-
test/recipes/80-test_cmp_http.t | 7 ++++++-
5 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index c57b9ad4a5..10c471ab1b 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -249,7 +249,7 @@ OpenSSL 3.0
type is OSSL_HTTP_REQ_CTX, and the deprecated functions are replaced
with OSSL_HTTP_REQ_CTX_new(), OSSL_HTTP_REQ_CTX_free(),
OSSL_HTTP_REQ_CTX_set_request_line(), OSSL_HTTP_REQ_CTX_add1_header(),
- OSSL_HTTP_REQ_CTX_i2d(), OSSL_HTTP_REQ_CTX_nbio(),
+ OSSL_HTTP_REQ_CTX_set1_req(), OSSL_HTTP_REQ_CTX_nbio(),
OSSL_HTTP_REQ_CTX_sendreq_d2i(), OSSL_HTTP_REQ_CTX_get0_mem_bio() and
OSSL_HTTP_REQ_CTX_set_max_response_length().
diff --git a/crypto/http/http_client.c b/crypto/http/http_client.c
index 8e4f8e8c83..9c2b593a2d 100644
--- a/crypto/http/http_client.c
+++ b/crypto/http/http_client.c
@@ -734,20 +734,18 @@ static BIO *HTTP_new_bio(const char *server /* optionally includes ":port" */,
static ASN1_VALUE *BIO_mem_d2i(BIO *mem, const ASN1_ITEM *it)
{
const unsigned char *p;
- long len = BIO_get_mem_data(mem, &p);
ASN1_VALUE *resp;
if (mem == NULL)
return NULL;
- if ((resp = ASN1_item_d2i(NULL, &p, len, it)) == NULL)
+ if ((resp = ASN1_item_d2i(NULL, &p, BIO_get_mem_data(mem, &p), it)) == NULL)
ERR_raise(ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR);
return resp;
}
static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
{
- int sending = 1;
int rv;
if (rctx == NULL) {
@@ -760,7 +758,6 @@ static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
if (rv != -1)
break;
/* BIO_should_retry was true */
- sending = 0;
/* will not actually wait if rctx->max_time == 0 */
if (BIO_wait(rctx->rbio, rctx->max_time, 100 /* milliseconds */) <= 0)
return NULL;
@@ -768,7 +765,7 @@ static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
if (rv == 0) {
if (rctx->redirection_url == NULL) { /* an error occurred */
- if (sending && (rctx->state & OHS_NOREAD) != 0)
+ if (rctx->len_to_send > 0)
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_SENDING);
else
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING);
diff --git a/crypto/http/http_lib.c b/crypto/http/http_lib.c
index 3bf642a4f4..f0fc770f22 100644
--- a/crypto/http/http_lib.c
+++ b/crypto/http/http_lib.c
@@ -87,11 +87,10 @@ int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost,
/* parse host name/address as far as needed here */
if (host[0] == '[') {
/* ipv6 literal, which may include ':' */
- host++;
- host_end = strchr(host, ']');
+ host_end = strchr(host + 1, ']');
if (host_end == NULL)
goto parse_err;
- p = host_end + 1;
+ p = ++host_end;
} else {
/* look for start of optional port, path, query, or fragment */
host_end = strchr(host, ':');
diff --git a/test/http_test.c b/test/http_test.c
index e59ef63833..0a3389c15f 100644
--- a/test/http_test.c
+++ b/test/http_test.c
@@ -204,7 +204,7 @@ static int test_http_url_ipv4(void)
static int test_http_url_ipv6(void)
{
- return test_http_url_ok("http://[FF01::101]:6", 0, "FF01::101", "6", "/");
+ return test_http_url_ok("http://[FF01::101]:6", 0, "[FF01::101]", "6", "/");
}
static int test_http_url_invalid(const char *url)
diff --git a/test/recipes/80-test_cmp_http.t b/test/recipes/80-test_cmp_http.t
index 4315b1c439..80cb6a4122 100644
--- a/test/recipes/80-test_cmp_http.t
+++ b/test/recipes/80-test_cmp_http.t
@@ -273,12 +273,17 @@ sub start_mock_server {
my $cmd = "LD_LIBRARY_PATH=$dir DYLD_LIBRARY_PATH=$dir " .
bldtop_dir($app) . " -config server.cnf $args";
my $pid = mock_server_pid();
- return $pid if $pid; # already running
+ if ($pid) {
+ print "Mock server already running with pid=$pid\n";
+ return $pid;
+ }
+ print "Launching mock server: $cmd\n";
return system("$cmd &") == 0 # start in background, check for success
? (sleep 1, mock_server_pid()) : 0;
}
sub stop_mock_server {
my $pid = $_[0];
+ print "Killing mock server with pid=$pid\n";
system("kill $pid") if $pid;
}
More information about the openssl-commits
mailing list