← Commit list

a1614c3bcf

Daniel Stenberg
Daniel Stenberg
2026-09-08
SUCCESS Duration: 397s

Subject

hsts: on load, only remove exact duplicates

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/hsts.c+1 -1
@@ -463,7 +463,7 @@ static CURLcode hsts_add_host_expire(struct hsts *h,
if(hostlen) {
/* only add it if not already present */
- e = hsts_check(h, host, hostlen, subdomain);
+ e = hsts_check(h, host, hostlen, FALSE);
if(!e)
result = hsts_create(h, host, hostlen, subdomain, expires);
/* 'host' is not necessarily null-terminated */
tests/data/Makefile.am+1 -1
@@ -2056,7 +2056,7 @@ TESTCASES = \
test3104 \
test3105 \
test3106 \
- \
+ test3109 \
test3200 \
test3201 \
test3202 \
tests/data/test3109+86 -0
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP proxy
+HSTS
+</keywords>
+</info>
+
+<reply>
+
+# we use this as response to a CONNECT
+<connect crlf="headers" nocheck="yes">
+HTTP/1.1 200 OK
+Server: fake
+
+</connect>
+
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Content-Type: text/html
+Content-Length: 0
+
+</data>
+</reply>
+
+<client>
+<server>
+http
+http-proxy
+https
+</server>
+<features>
+HSTS
+proxy
+https
+Debug
+</features>
+
+# October 1, 2024
+<setenv>
+CURL_HSTS_HTTP=yes
+CURL_TIME=1727733600
+</setenv>
+
+# the child name has a later expiury than the parent so it must not be removed
+# before
+<file name="%LOGDIR/input%TESTNUMBER">
+.example.test "20241010 09:42:27"
+.child.example.test "20251010 09:42:27"
+</file>
+
+<name>
+HSTS parent expires before child
+</name>
+<command>
+-x http://%HOSTIP:%PROXYPORT http://child.example.test:%HTTPSPORT/%TESTNUMBER --hsts %LOGDIR/input%TESTNUMBER --insecure
+</command>
+<disable>
+test-duphandle
+</disable>
+</client>
+
+<verify>
+
+<stdout>
+HTTP/1.1 200 OK%CR
+Server: fake%CR
+%CR
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Content-Type: text/html
+Content-Length: 0
+
+</stdout>
+
+<file name="%LOGDIR/input%TESTNUMBER" mode="text">
+# Your HSTS cache. https://curl.se/docs/hsts.html
+# This file was generated by libcurl! Edit at your own risk.
+.example.test "20241010 09:42:27"
+.child.example.test "20251010 09:42:27"
+</file>
+</verify>
+</testcase>