|
1 /* check resource: protocol for traversal problems */ |
|
2 |
|
3 const specs = [ |
|
4 "resource:///chrome/../plugins", |
|
5 "resource:///chrome%2f../plugins", |
|
6 "resource:///chrome/..%2fplugins", |
|
7 "resource:///chrome%2f%2e%2e%2fplugins", |
|
8 "resource:///../../../..", |
|
9 "resource:///..%2f..%2f..%2f..", |
|
10 "resource:///%2e%2e" |
|
11 ]; |
|
12 |
|
13 function run_test() { |
|
14 var ios = Cc["@mozilla.org/network/io-service;1"]. |
|
15 getService(Ci.nsIIOService); |
|
16 |
|
17 for each (spec in specs) { |
|
18 var uri = ios.newURI(spec, null, null); |
|
19 if (uri.spec.indexOf("..") != -1) |
|
20 do_throw("resource: traversal remains: '"+spec+"' ==> '"+uri.spec+"'"); |
|
21 } |
|
22 } |