diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index f7402e60b..77625d507 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -6,3 +6,8 @@
1209
1211
2017
+2018
+2019
+2020
+2021
+2022
diff --git a/tests/data/test2017 b/tests/data/test2017
index f4312c47b..52df14e38 100644
--- a/tests/data/test2017
+++ b/tests/data/test2017
@@ -35,7 +35,7 @@ file
Metalink
-Metalink local XML file, attempt questionable file name
+Metalink local XML file, attempt UNIX home path traversal
--metalink file://%PWD/log/test2017.metalink
@@ -45,7 +45,7 @@ Metalink local XML file, attempt questionable file name
-
+
c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82
@@ -57,7 +57,7 @@ Metalink local XML file, attempt questionable file name
-perl %SRCDIR/libtest/notexists.pl log/2017 log/name2017 log/.download2017
+perl %SRCDIR/libtest/notexists.pl log/2017 log/name2017
@@ -72,7 +72,7 @@ Metalink: parsing (file://%PWD/log/test2017.metalink) WARNING (missing or invali
Metalink: parsing (file://%PWD/log/test2017.metalink) FAILED
-$_ = '' if ($_ !~ /^Metalink: /)
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
diff --git a/tests/data/test2018 b/tests/data/test2018
new file mode 100644
index 000000000..b76233e1a
--- /dev/null
+++ b/tests/data/test2018
@@ -0,0 +1,78 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2018; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+http
+
+
+file
+Metalink
+
+
+Metalink local XML file, attempt UNIX questionable file name I
+
+
+--metalink file://%PWD/log/test2018.metalink
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82
+
+
+ http://%HOSTIP:%HTTPPORT/2018
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2018 log/name2018 log/.download2018
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+
+
+Metalink: parsing (file://%PWD/log/test2018.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2018.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2018.metalink) FAILED
+
+
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+
+
+
diff --git a/tests/data/test2019 b/tests/data/test2019
new file mode 100644
index 000000000..cd098040b
--- /dev/null
+++ b/tests/data/test2019
@@ -0,0 +1,78 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2019; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+http
+
+
+file
+Metalink
+
+
+Metalink local XML file, attempt UNIX questionable file name II
+
+
+--metalink file://%PWD/log/test2019.metalink
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82
+
+
+ http://%HOSTIP:%HTTPPORT/2019
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2019 log/name2019
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+
+
+Metalink: parsing (file://%PWD/log/test2019.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2019.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2019.metalink) FAILED
+
+
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+
+
+
diff --git a/tests/data/test2020 b/tests/data/test2020
new file mode 100644
index 000000000..f89600b64
--- /dev/null
+++ b/tests/data/test2020
@@ -0,0 +1,78 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2020; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+http
+
+
+file
+Metalink
+
+
+Metalink local XML file, attempt UNIX questionable file name III
+
+
+--metalink file://%PWD/log/test2020.metalink
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82
+
+
+ http://%HOSTIP:%HTTPPORT/2020
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2020 log/name2020
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+
+
+Metalink: parsing (file://%PWD/log/test2020.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2020.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2020.metalink) FAILED
+
+
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+
+
+
diff --git a/tests/data/test2021 b/tests/data/test2021
new file mode 100644
index 000000000..133eb1678
--- /dev/null
+++ b/tests/data/test2021
@@ -0,0 +1,78 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2021; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+http
+
+
+file
+Metalink
+
+
+Metalink local XML file, attempt UNIX questionable file name IV
+
+
+--metalink file://%PWD/log/test2021.metalink
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82
+
+
+ http://%HOSTIP:%HTTPPORT/2021
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2021 log/name2021 log/download2021
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+
+
+Metalink: parsing (file://%PWD/log/test2021.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2021.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2021.metalink) FAILED
+
+
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+
+
+
diff --git a/tests/data/test2022 b/tests/data/test2022
new file mode 100644
index 000000000..8cb0df520
--- /dev/null
+++ b/tests/data/test2022
@@ -0,0 +1,78 @@
+
+
+
+Metalink
+HTTP
+HTTP GET
+
+
+
+#
+# Server-side
+
+
+HTTP/1.1 200 OK
+Date: Wed, 20 Jun 2012 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 56
+Connection: close
+Content-Type: text/html
+Content-Disposition: filename=name2022; charset=funny; option=strange
+Funny-head: yesyes
+
+Data that should not be delivered from an HTTP resource
+
+
+
+#
+# Client-side
+
+
+http
+
+
+file
+Metalink
+
+
+Metalink local XML file, attempt UNIX questionable file name V
+
+
+--metalink file://%PWD/log/test2022.metalink
+
+# local metalink file written before test command runs
+
+
+
+
+
+
+ c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82
+
+
+ http://%HOSTIP:%HTTPPORT/2022
+
+
+
+
+
+
+perl %SRCDIR/libtest/notexists.pl log/2022 log/name2022 log/download2022
+
+
+
+#
+# Verify data after the test has been "shot"
+
+
+
+
+Metalink: parsing (file://%PWD/log/test2022.metalink) metalink/XML...
+Metalink: parsing (file://%PWD/log/test2022.metalink) WARNING (missing or invalid file name)
+Metalink: parsing (file://%PWD/log/test2022.metalink) FAILED
+
+
+$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
+
+
+