mirror of
https://github.com/curl/curl.git
synced 2026-08-24 16:23:34 +03:00
hsts: handle unlimited expiry
When setting a blank expire string, meaning unlimited, curl would pass TIME_T_MAX to getime_r() when creating the output, while on 64 bit systems such a large value cannot be convetered to a tm struct making curl to exit the loop with an error instead. It can't be converted because the year it would represent doesn't fit in the 'int tm_year' field! Starting now, unlimited expiry is instead handled differently by using a human readable expiry date spelled out as "unlimited" instead of trying to use a distant actual date. Test 1660 and 1915 have been updated to help verify this change. Reported-by: Jonathan Cardoso Fixes #7720 Closes #7721
This commit is contained in:
parent
d5a70e77b2
commit
54f6d836d8
4 changed files with 47 additions and 28 deletions
|
|
@ -20,6 +20,7 @@ HSTS
|
|||
# This file was generated by libcurl! Edit at your own risk.
|
||||
.readfrom.example "20211001 04:47:41"
|
||||
.old.example "20161001 04:47:41"
|
||||
.new.example "unlimited"
|
||||
</file>
|
||||
|
||||
# This date is exactly "20190124 22:34:21" UTC
|
||||
|
|
@ -59,7 +60,7 @@ foo.example.com [example.com]: 1569905261 includeSubDomains
|
|||
'forexample.net' is not HSTS
|
||||
'example.net' is not HSTS
|
||||
expire.example [expire.example]: 1548369268
|
||||
Number of entries: 3
|
||||
Number of entries: 4
|
||||
expire.example [expire.example]: 1548369268
|
||||
expire.example [expire.example]: 1548369268
|
||||
expire.example [expire.example]: 1548369268
|
||||
|
|
@ -74,6 +75,7 @@ expire.example [expire.example]: 1548369268
|
|||
<file name="log/hsts%TESTNUMBER" mode="text">
|
||||
# Your HSTS cache. https://curl.se/docs/hsts.html
|
||||
# This file was generated by libcurl! Edit at your own risk.
|
||||
.new.example "unlimited"
|
||||
.example.com "20191001 04:47:41"
|
||||
example.org "20200124 22:34:21"
|
||||
</file>
|
||||
|
|
|
|||
|
|
@ -42,9 +42,9 @@ http://%HOSTIP:%NOLISTENPORT/not-there/%TESTNUMBER
|
|||
</errorcode>
|
||||
<stdout>
|
||||
[0/4] 1.example.com 20370320 01:02:03
|
||||
[1/4] 2.example.com 20370320 01:02:03
|
||||
[2/4] 3.example.com 20370320 01:02:03
|
||||
[3/4] 4.example.com 20370320 01:02:03
|
||||
[1/4] 2.example.com 20370320 03:02:01
|
||||
[2/4] 3.example.com 20370319 01:02:03
|
||||
[3/4] 4.example.com unlimited
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue