Le lundi 03 novembre 2008 à 12:53 +0100, Philipp Kern a écrit : > > As I haven’t received an answer from the security team (RT#882), and as > > the fix is not that urgent, should I upload it to s-p-u? > > Would you mind to create a diff of the original certManager.js and the > overridden one? Sure, here it is. Cheers, -- .''`. : :' : We are debian.org. Lower your prices, surrender your code. `. `' We will add your hardware and software distinctiveness to `- our own. Resistance is futile.
--- /usr/share/xulrunner/chrome/pippki/content/pippki/certManager.js 2005-06-02 03:22:42.000000000 +0200
+++ debian/certManager.js 2008-10-28 13:59:40.000000000 +0100
@@ -343,52 +343,36 @@
if (!numcerts)
return;
- var params = Components.classes[nsDialogParamBlock].createInstance(nsIDialogParamBlock);
-
var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
var selTab = document.getElementById('certMgrTabbox').selectedItem;
var selTabID = selTab.getAttribute('id');
var t;
-
- params.SetNumberStrings(numcerts+1);
+ var confirmtext;
if (selTabID == 'mine_tab')
{
- params.SetString(0,bundle.GetStringFromName("deleteUserCertFlag"));
+ confirmtext = bundle.GetStringFromName("deleteUserCertConfirm");
}
else if (selTabID == "websites_tab")
{
- params.SetString(0,bundle.GetStringFromName("deleteSslCertFlag"));
+ confirmtext = bundle.GetStringFromName("deleteSslCertConfirm");
}
else if (selTabID == "ca_tab")
{
- params.SetString(0,bundle.GetStringFromName("deleteCaCertFlag"));
+ confirmtext = bundle.GetStringFromName("deleteCaCertConfirm");
}
else if (selTabID == "others_tab")
{
- params.SetString(0,bundle.GetStringFromName("deleteEmailCertFlag"));
+ confirmtext = bundle.GetStringFromName("deleteEmailCertConfirm");
}
else
{
return;
}
-
- params.SetInt(0,numcerts);
- for (t=0; t<numcerts; t++)
- {
- var cert = selected_certs[t];
- params.SetString(t+1, cert.dbKey);
- }
- // The dialog will modify the params.
- // Every param item where the corresponding cert could get deleted,
- // will still contain the db key.
- // Certs which could not get deleted, will have their corrensponding
- // param string erased.
- window.openDialog('chrome://pippki/content/deletecert.xul', "",
- 'chrome,centerscreen,modal', params);
+ var oktodelete = confirm (confirmtext);
- if (params.GetInt(1) == 1) {
+ if (oktodelete) {
// user closed dialog with OK
var treeView = null;
var loadParam = null;
@@ -409,15 +393,22 @@
loadParam = nsIX509Cert.CA_CERT;
}
- for (t=numcerts-1; t>=0; t--)
+ for(var i=0;i<selected_certs.length;i++)
{
- var s = params.GetString(t+1);
- if (s.length) {
- // This cert was deleted.
- treeView.removeCert(selected_cert_index[t]);
+ if (selected_certs[i]) {
+ try {
+ certdb.deleteCertificate(selected_certs[i]);
+ }
+ catch (e) { }
+ selected_certs[i] = null;
}
}
+ for (t=numcerts-1; t>=0; t--)
+ {
+ treeView.removeCert(selected_cert_index[t]);
+ }
+
treeView.selection.clearSelection();
}
}
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=