File jdom-CVE-2021-33813.patch of Package jdom.26331
From bd3ab78370098491911d7fe9d7a43b97144a234e Mon Sep 17 00:00:00 2001
From: Esti <esther.burs@gmail.com>
Date: Thu, 18 Feb 2021 16:40:01 +0200
Subject: [PATCH] fix setFeature bug and add test case
---
jdom-1.1/src/java/org/jdom/input/SAXBuilder.java | 10 ++++------
.../test/cases/input/TestSAXBuilder.java | 20 +++++++++++++++++++
2 files changed, 24 insertions(+), 6 deletions(-)
Index: jdom-1.1/jdom-1.1/src/java/org/jdom/input/SAXBuilder.java
===================================================================
--- jdom-1.1.orig/jdom-1.1/src/java/org/jdom/input/SAXBuilder.java
+++ jdom-1.1/jdom-1.1/src/java/org/jdom/input/SAXBuilder.java
@@ -695,11 +695,7 @@ public class SAXBuilder {
// No lexical reporting available
}
}
- }
- private void setFeaturesAndProperties(XMLReader parser,
- boolean coreFeatures)
- throws JDOMException {
// Set any user-specified features on the parser.
Iterator iter = features.keySet().iterator();
while (iter.hasNext()) {
@@ -714,6 +710,11 @@ public class SAXBuilder {
String name = (String)iter.next();
internalSetProperty(parser, name, properties.get(name), name);
}
+ }
+
+ private void setFeaturesAndProperties(XMLReader parser,
+ boolean coreFeatures)
+ throws JDOMException {
if (coreFeatures) {
// Set validation.
@@ -752,6 +753,21 @@ public class SAXBuilder {
}
catch (SAXNotRecognizedException e) { /* Ignore... */ }
catch (SAXNotSupportedException e) { /* Ignore... */ }
+
+ // Set any user-specified features on the parser.
+ Iterator iter = features.keySet().iterator();
+ while (iter.hasNext()) {
+ String name = (String)iter.next();
+ Boolean value = (Boolean)features.get(name);
+ internalSetFeature(parser, name, value.booleanValue(), name);
+ }
+
+ // Set any user-specified properties on the parser.
+ iter = properties.keySet().iterator();
+ while (iter.hasNext()) {
+ String name = (String)iter.next();
+ internalSetProperty(parser, name, properties.get(name), name);
+ }
}
/**