summaryrefslogtreecommitdiffstats
path: root/modules/libjar/test/unit/test_corrupt_536911.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/libjar/test/unit/test_corrupt_536911.js')
-rw-r--r--modules/libjar/test/unit/test_corrupt_536911.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/modules/libjar/test/unit/test_corrupt_536911.js b/modules/libjar/test/unit/test_corrupt_536911.js
new file mode 100644
index 0000000000..1b8bb9d7e4
--- /dev/null
+++ b/modules/libjar/test/unit/test_corrupt_536911.js
@@ -0,0 +1,32 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+function wrapInputStream(input) {
+ var nsIScriptableInputStream = Ci.nsIScriptableInputStream;
+ var factory = Cc["@mozilla.org/scriptableinputstream;1"];
+ var wrapper = factory.createInstance(nsIScriptableInputStream);
+ wrapper.init(input);
+ return wrapper;
+}
+
+// Check that files can be read from after closing zipreader
+function run_test() {
+ // the build script have created the zip we can test on in the current dir.
+ var file = do_get_file("data/test_corrupt.zip");
+
+ var zipreader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(
+ Ci.nsIZipReader
+ );
+ zipreader.open(file);
+ // var entries = zipreader.findEntries(null);
+ // the signature for file is corrupt, should not segfault
+ var failed = false;
+ try {
+ var stream = wrapInputStream(zipreader.getInputStream("file"));
+ stream.read(1024);
+ } catch (ex) {
+ failed = true;
+ }
+ Assert.ok(failed);
+}