1 <testcase> 2 <info> 3 <keywords> 4 Metalink 5 HTTP 6 HTTP GET 7 </keywords> 8 </info> 9 10 # 11 # Server-side 12 <reply> 13 <data nocheck="yes"> 14 HTTP/1.1 200 OK 15 Date: Wed, 20 Jun 2012 14:49:00 GMT 16 Server: test-server/fake 17 Content-Length: 56 18 Connection: close 19 Content-Type: text/html 20 Content-Disposition: filename=name2017; charset=funny; option=strange 21 Funny-head: yesyes 22 23 Data that should not be delivered from an HTTP resource 24 </data> 25 </reply> 26 27 # 28 # Client-side 29 <client> 30 <server> 31 http 32 </server> 33 <features> 34 file 35 Metalink 36 </features> 37 <name> 38 Metalink local XML file, attempt Unix home path traversal 39 </name> 40 <command option="no-output,no-include"> 41 --metalink file://%PWD/log/test2017.metalink 42 </command> 43 # local metalink file written before test command runs 44 <file name="log/test2017.metalink"> 45 <?xml version="1.0" encoding="utf-8"?> 46 <metalink version="3.0" xmlns="http://www.metalinker.org/"> 47 <files> 48 <file name="~/download2017"> 49 <verification> 50 <hash type="sha256">c7d03debe90ca29492203ea921d76941fa98640cf3b744f2a16c9b58465eab82</hash> 51 </verification> 52 <resources maxconnections="1"> 53 <url type="http" preference="90">http://%HOSTIP:%HTTPPORT/2017</url> 54 </resources> 55 </file> 56 </files> 57 </metalink> 58 </file> 59 <postcheck> 60 perl %SRCDIR/libtest/notexists.pl log/2017 log/name2017 61 </postcheck> 62 </client> 63 64 # 65 # Verify data after the test has been "shot" 66 <verify> 67 <file1 name="log/stdout2017"> 68 </file1> 69 <file2 name="log/stderr2017"> 70 Metalink: parsing (file://%PWD/log/test2017.metalink) metalink/XML... 71 Metalink: parsing (file://%PWD/log/test2017.metalink) WARNING (missing or invalid file name) 72 Metalink: parsing (file://%PWD/log/test2017.metalink) FAILED 73 </file2> 74 <stripfile2> 75 $_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i)) 76 </stripfile2> 77 </verify> 78 </testcase> 79