projects
/
platform
/
upstream
/
curl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 7.59.0
[platform/upstream/curl.git]
/
lib
/
hostcheck.c
diff --git
a/lib/hostcheck.c
b/lib/hostcheck.c
index
cbd0893
..
37bcc12
100644
(file)
--- a/
lib/hostcheck.c
+++ b/
lib/hostcheck.c
@@
-5,7
+5,7
@@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 201
6
, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 201
7
, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@
-31,6
+31,9
@@
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
#include "hostcheck.h"
#include "strcase.h"
#include "hostcheck.h"
#include "strcase.h"
@@
-73,10
+76,10
@@
static int hostmatch(char *hostname, char *pattern)
/* normalize pattern and hostname by stripping off trailing dots */
size_t len = strlen(hostname);
if(hostname[len-1]=='.')
/* normalize pattern and hostname by stripping off trailing dots */
size_t len = strlen(hostname);
if(hostname[len-1]=='.')
- hostname[len-1]
=
0;
+ hostname[len-1]
=
0;
len = strlen(pattern);
if(pattern[len-1]=='.')
len = strlen(pattern);
if(pattern[len-1]=='.')
- pattern[len-1]
=
0;
+ pattern[len-1]
=
0;
pattern_wildcard = strchr(pattern, '*');
if(pattern_wildcard == NULL)
pattern_wildcard = strchr(pattern, '*');
if(pattern_wildcard == NULL)
@@
-87,7
+90,7
@@
static int hostmatch(char *hostname, char *pattern)
if(Curl_inet_pton(AF_INET, hostname, &ignored) > 0)
return CURL_HOST_NOMATCH;
#ifdef ENABLE_IPV6
if(Curl_inet_pton(AF_INET, hostname, &ignored) > 0)
return CURL_HOST_NOMATCH;
#ifdef ENABLE_IPV6
-
else
if(Curl_inet_pton(AF_INET6, hostname, &si6.sin6_addr) > 0)
+ if(Curl_inet_pton(AF_INET6, hostname, &si6.sin6_addr) > 0)
return CURL_HOST_NOMATCH;
#endif
return CURL_HOST_NOMATCH;
#endif
@@
-95,7
+98,7
@@
static int hostmatch(char *hostname, char *pattern)
match. */
wildcard_enabled = 1;
pattern_label_end = strchr(pattern, '.');
match. */
wildcard_enabled = 1;
pattern_label_end = strchr(pattern, '.');
- if(pattern_label_end == NULL || strchr(pattern_label_end
+
1, '.') == NULL ||
+ if(pattern_label_end == NULL || strchr(pattern_label_end
+
1, '.') == NULL ||
pattern_wildcard > pattern_label_end ||
strncasecompare(pattern, "xn--", 4)) {
wildcard_enabled = 0;
pattern_wildcard > pattern_label_end ||
strncasecompare(pattern, "xn--", 4)) {
wildcard_enabled = 0;
@@
-116,9
+119,9
@@
static int hostmatch(char *hostname, char *pattern)
return CURL_HOST_NOMATCH;
prefixlen = pattern_wildcard - pattern;
return CURL_HOST_NOMATCH;
prefixlen = pattern_wildcard - pattern;
- suffixlen = pattern_label_end - (pattern_wildcard
+
1);
+ suffixlen = pattern_label_end - (pattern_wildcard
+
1);
return strncasecompare(pattern, hostname, prefixlen) &&
return strncasecompare(pattern, hostname, prefixlen) &&
- strncasecompare(pattern_wildcard
+
1, hostname_label_end - suffixlen,
+ strncasecompare(pattern_wildcard
+
1, hostname_label_end - suffixlen,
suffixlen) ?
CURL_HOST_MATCH : CURL_HOST_NOMATCH;
}
suffixlen) ?
CURL_HOST_MATCH : CURL_HOST_NOMATCH;
}
@@
-137,7
+140,7
@@
int Curl_cert_hostcheck(const char *match_pattern, const char *hostname)
hostp = strdup(hostname);
if(hostp) {
if(hostmatch(hostp, matchp) == CURL_HOST_MATCH)
hostp = strdup(hostname);
if(hostp) {
if(hostmatch(hostp, matchp) == CURL_HOST_MATCH)
- res= 1;
+ res
= 1;
free(hostp);
}
free(matchp);
free(hostp);
}
free(matchp);