зеркало из https://github.com/mozilla/pjs.git
Bug 603021: Hash comparisons should be case insensitive. r=dtownsend, a=blocks-betaN
This commit is contained in:
Родитель
54354f785c
Коммит
06e04f6769
|
@ -4800,7 +4800,7 @@ AddonInstall.prototype = {
|
|||
let binary = this.crypto.finish(false);
|
||||
let hash = [toHexString(binary.charCodeAt(i)) for (i in binary)].join("")
|
||||
this.crypto = null;
|
||||
if (this.hash && hash != this.hash) {
|
||||
if (this.hash && hash.toLowerCase() != this.hash.toLowerCase()) {
|
||||
this.downloadFailed(AddonManager.ERROR_INCORRECT_HASH,
|
||||
"Downloaded file hash (" + hash +
|
||||
") did not match provided hash (" + this.hash + ")");
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// Test whether an install succeeds using case-insensitive hashes
|
||||
// This verifies bug 603021
|
||||
function test() {
|
||||
Harness.installEndedCallback = install_ended;
|
||||
Harness.installsCompletedCallback = finish_test;
|
||||
Harness.setup();
|
||||
|
||||
var pm = Services.perms;
|
||||
pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION);
|
||||
|
||||
var triggers = encodeURIComponent(JSON.stringify({
|
||||
"Unsigned XPI": {
|
||||
URL: TESTROOT + "unsigned.xpi",
|
||||
Hash: "sha1:3D0DC22E1F394E159B08AAF5F0F97DE4D5C65F4F",
|
||||
toString: function() { return this.URL; }
|
||||
}
|
||||
}));
|
||||
gBrowser.selectedTab = gBrowser.addTab();
|
||||
gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers);
|
||||
}
|
||||
|
||||
function install_ended(install, addon) {
|
||||
install.cancel();
|
||||
}
|
||||
|
||||
function finish_test(count) {
|
||||
is(count, 1, "1 Add-on should have been successfully installed");
|
||||
|
||||
Services.perms.remove("example.com", "install");
|
||||
|
||||
gBrowser.removeCurrentTab();
|
||||
Harness.finish();
|
||||
}
|
Загрузка…
Ссылка в новой задаче