提交 5a640713 编写于 作者: M Matt Caswell

Ensure a string is properly terminated in http_client.c

In HTTP_new_bio(), if the host has a trailing '/' we took a copy of the
hostname but failed to terminate it properly.
Reviewed-by: NDavid von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: NTomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12275)
上级 64bb6276
......@@ -712,10 +712,15 @@ static BIO *HTTP_new_bio(const char *server /* optionally includes ":port" */,
}
host_end = strchr(host, '/');
if (host_end != NULL && (size_t)(host_end - host) < sizeof(host_name)) {
/* chop trailing string starting with '/' */
strncpy(host_name, host, host_end - host + 1);
host = host_name;
if (host_end != NULL) {
size_t host_len = host_end - host;
if (host_len < sizeof(host_name)) {
/* chop trailing string starting with '/' */
strncpy(host_name, host, host_len);
host_name[host_len] = '\0';
host = host_name;
}
}
cbio = BIO_new_connect(host /* optionally includes ":port" */);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册