提交 622c7e99 编写于 作者: R Richard Levitte

Rearrange the use of 'proto' in BIO_lookup

'proto' wasn't properly used as a fallback in all appropriate cases.
Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 3eefcea1
......@@ -742,7 +742,6 @@ int BIO_lookup(const char *host, const char *service,
#else
struct servent se_fallback = { NULL, NULL, 0, NULL };
#endif
char *proto = NULL;
CRYPTO_THREAD_run_once(&bio_lookup_init, do_bio_lookup_init);
......@@ -778,11 +777,21 @@ int BIO_lookup(const char *host, const char *service,
if (service == NULL) {
se_fallback.s_port = 0;
se_fallback.s_proto = proto;
se_fallback.s_proto = NULL;
se = &se_fallback;
} else {
char *endp = NULL;
long portnum = strtol(service, &endp, 10);
char *proto = NULL;
switch (socktype) {
case SOCK_STREAM:
proto = "tcp";
break;
case SOCK_DGRAM:
proto = "udp";
break;
}
if (endp != service && *endp == '\0'
&& portnum > 0 && portnum < 65536) {
......@@ -790,14 +799,6 @@ int BIO_lookup(const char *host, const char *service,
se_fallback.s_proto = proto;
se = &se_fallback;
} else if (endp == service) {
switch (socktype) {
case SOCK_STREAM:
proto = "tcp";
break;
case SOCK_DGRAM:
proto = "udp";
break;
}
se = getservbyname(service, proto);
if (se == NULL) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册