diff --git a/lib/hsts.c b/lib/hsts.c index 9e4710f1b1..c00481fe60 100644 --- a/lib/hsts.c +++ b/lib/hsts.c @@ -408,6 +408,7 @@ static CURLcode hsts_add(struct hsts *h, const char *line) time_t expires = 0; const char *hp = curlx_str(&host); size_t hlen; + time_t now = time(NULL); /* The date parser works on a null-terminated string. The maximum length is upheld by curlx_str_quotedword(). */ @@ -419,6 +420,10 @@ static CURLcode hsts_add(struct hsts *h, const char *line) else Curl_getdate_capped(dbuf, &expires); + if(expires <= now) + /* this entry already expired */ + return CURLE_OK; + if(hp[0] == '.') { curlx_str_nudge(&host, 1); hp = curlx_str(&host); diff --git a/tests/data/test780 b/tests/data/test780 index b3a7c6f88a..70211041e2 100644 --- a/tests/data/test780 +++ b/tests/data/test780 @@ -48,6 +48,7 @@ CURL_TIME=1728465947 this.hsts.example "99991001 04:47:41" +expired.example "20011001 04:47:41"