mirror of
https://github.com/curl/curl.git
synced 2026-04-12 12:21:42 +08:00
parent
65597f8fc9
commit
9ec63d8565
21
lib/hsts.c
21
lib/hsts.c
@ -75,11 +75,7 @@ struct hsts *Curl_hsts_init(void)
|
||||
return h;
|
||||
}
|
||||
|
||||
static void hsts_free(struct stsentry *e)
|
||||
{
|
||||
curlx_free(CURL_UNCONST(e->host));
|
||||
curlx_free(e);
|
||||
}
|
||||
#define hsts_free(x) curlx_free(x)
|
||||
|
||||
void Curl_hsts_cleanup(struct hsts **hp)
|
||||
{
|
||||
@ -111,18 +107,11 @@ static CURLcode hsts_create(struct hsts *h,
|
||||
/* strip off any trailing dot */
|
||||
--hlen;
|
||||
if(hlen) {
|
||||
char *duphost;
|
||||
struct stsentry *sts = curlx_calloc(1, sizeof(struct stsentry));
|
||||
struct stsentry *sts = curlx_calloc(1, sizeof(struct stsentry) + hlen);
|
||||
if(!sts)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
duphost = Curl_memdup0(hostname, hlen);
|
||||
if(!duphost) {
|
||||
curlx_free(sts);
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
sts->host = duphost;
|
||||
/* the null terminator is already there */
|
||||
memcpy(sts->host, hostname, hlen);
|
||||
sts->expires = expires;
|
||||
sts->includeSubDomains = subdomains;
|
||||
Curl_llist_append(&h->list, sts, &sts->node);
|
||||
@ -294,7 +283,7 @@ static CURLcode hsts_push(struct Curl_easy *data,
|
||||
struct tm stamp;
|
||||
CURLcode result;
|
||||
|
||||
e.name = (char *)CURL_UNCONST(sts->host);
|
||||
e.name = (char *)sts->host;
|
||||
e.namelen = strlen(sts->host);
|
||||
e.includeSubDomains = sts->includeSubDomains;
|
||||
|
||||
|
||||
@ -35,9 +35,9 @@ extern time_t deltatime;
|
||||
|
||||
struct stsentry {
|
||||
struct Curl_llist_node node;
|
||||
const char *host;
|
||||
curl_off_t expires; /* the timestamp of this entry's expiry */
|
||||
BIT(includeSubDomains);
|
||||
char host[1];
|
||||
};
|
||||
|
||||
/* The HSTS cache. Needs to be able to tailmatch hostnames. */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user