From 8d48e0ec97122d72a5ab224c535e51de6a2bef77 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 14 Feb 2022 12:22:48 +0100 Subject: Always pass charset in String constructor; don't treat strings as binary safe --- src/main/java/org/openslx/libvirt/xml/LibvirtXmlDocument.java | 8 +++++--- .../java/org/openslx/libvirt/xml/LibvirtXmlSchemaValidator.java | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/main/java/org/openslx/libvirt/xml') diff --git a/src/main/java/org/openslx/libvirt/xml/LibvirtXmlDocument.java b/src/main/java/org/openslx/libvirt/xml/LibvirtXmlDocument.java index 97180e3..c428988 100644 --- a/src/main/java/org/openslx/libvirt/xml/LibvirtXmlDocument.java +++ b/src/main/java/org/openslx/libvirt/xml/LibvirtXmlDocument.java @@ -10,6 +10,7 @@ import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; @@ -74,7 +75,7 @@ public abstract class LibvirtXmlDocument implements LibvirtXmlSerializable, Libv domFactory.setNamespaceAware( true ); this.domBuilder = domFactory.newDocumentBuilder(); } catch ( ParserConfigurationException e ) { - String errorMsg = new String( "Setting up XML context for reading from the Libvirt XML document failed." ); + String errorMsg = "Setting up XML context for reading from the Libvirt XML document failed."; throw new LibvirtXmlDocumentException( errorMsg ); } @@ -91,8 +92,9 @@ public abstract class LibvirtXmlDocument implements LibvirtXmlSerializable, Libv InputStream xslOutputSchemaStream = LibvirtXmlResources.getLibvirtXsl( "xml-output-transformation.xsl" ); StreamSource xslOutputSchema = new StreamSource( xslOutputSchemaStream ); this.xmlTransformer = transformerFactory.newTransformer( xslOutputSchema ); + this.xmlTransformer.setOutputProperty( OutputKeys.ENCODING, "UTF-8" ); } catch ( TransformerConfigurationException e ) { - String errorMsg = new String( "Setting up XML context for writing to the Libvirt XML document failed." ); + String errorMsg = "Setting up XML context for writing to the Libvirt XML document failed."; throw new LibvirtXmlDocumentException( errorMsg ); } @@ -101,7 +103,7 @@ public abstract class LibvirtXmlDocument implements LibvirtXmlSerializable, Libv try { this.rngValidator = new LibvirtXmlSchemaValidator( rngSchema ); } catch ( SAXException e ) { - String errorMsg = new String( "Setting up XML context for validating to the Libvirt XML document failed." ); + String errorMsg = "Setting up XML context for validating to the Libvirt XML document failed."; e.printStackTrace(); throw new LibvirtXmlDocumentException( errorMsg ); } diff --git a/src/main/java/org/openslx/libvirt/xml/LibvirtXmlSchemaValidator.java b/src/main/java/org/openslx/libvirt/xml/LibvirtXmlSchemaValidator.java index bc8f90f..d589d41 100644 --- a/src/main/java/org/openslx/libvirt/xml/LibvirtXmlSchemaValidator.java +++ b/src/main/java/org/openslx/libvirt/xml/LibvirtXmlSchemaValidator.java @@ -6,6 +6,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.Reader; +import java.nio.charset.StandardCharsets; import javax.xml.XMLConstants; import javax.xml.transform.Transformer; @@ -106,7 +107,7 @@ class LibvirtXmlSchemaResourceInput implements LSInput int inputLength = this.inputStream.available(); byte[] input = new byte[ inputLength ]; this.inputStream.read( input ); - data = new String( input ); + data = new String( input, StandardCharsets.UTF_8 ); } catch ( IOException e ) { e.printStackTrace(); } -- cgit v1.2.3-55-g7522