Hi,

In Camel SNMP, the org.apache.camel.component.snmp.SnmpConverters class has a 
static “getXmlSafeString” method which escapes unsafe characters by replacing 
them. However, the order of applying replacements is not correct:

    private static String getXmlSafeString(String string) {
        return string.replaceAll("<", "&lt;").replaceAll(">", 
"&gt;").replaceAll("&", "&amp;").replaceAll("\"", "&quot;").replaceAll("'", 
"&apos;");
    }

It replaces “<” with “&lt;” at first, then the “&” is replaced with “&amp;”. 
This means that a “<” character in the input string will be changed to “&lt;”, 
and then into “&amp;lt;”, which is not the intended behavior.

This could be fixed by applying the “replaceAll("&", "&amp;")” transformation 
first.


Reply via email to