www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 16225803730c38c78e5d93303ada486ee6ee6110
parent 58a41a194070393bb96d4b17a040c30081477760
Author: Simon Kornblith <simon@simonster.com>
Date:   Mon, 25 Jun 2012 00:59:31 -0400

Properly handle invalid XML

Diffstat:
Mchrome/content/zotero/xpcom/style.js | 7+++++--
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);