commit 16225803730c38c78e5d93303ada486ee6ee6110
parent 58a41a194070393bb96d4b17a040c30081477760
Author: Simon Kornblith <simon@simonster.com>
Date: Mon, 25 Jun 2012 00:59:31 -0400
Properly handle invalid XML
Diffstat:
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/chrome/content/zotero/xpcom/style.js b/chrome/content/zotero/xpcom/style.js
@@ -174,8 +174,8 @@ Zotero.Styles = new function() {
var parser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
.createInstance(Components.interfaces.nsIDOMParser),
doc = parser.parseFromString(style, "application/xml");
- if (!doc.documentElement.localName) {
- throw new Error("File is not XML");
+ if(doc.documentElement.localName === "parsererror") {
+ throw new Error("File is not valid XML");
}
} catch(e) {
error = e;
@@ -367,6 +367,9 @@ Zotero.Style = function(arg) {
parser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
.createInstance(Components.interfaces.nsIDOMParser),
doc = parser.parseFromString(style, "application/xml");
+ if(doc.documentElement.localName === "parsererror") {
+ throw new Error("File is not valid XML");
+ }
this.styleID = Zotero.Utilities.xpathText(doc, '/csl:style/csl:info[1]/csl:id[1]',
Zotero.Styles.ns);