On 13/04/2014 22:30, Konstantin Kolinko wrote: > 2014-04-13 0:07 GMT+04:00 <ma...@apache.org>: >> Author: markt >> Date: Sat Apr 12 20:07:54 2014 >> New Revision: 1586890 >> >> URL: http://svn.apache.org/r1586890 >> Log: >> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56334 >> Correct double backslash escaping in attributes >> >> Added: >> tomcat/trunk/test/webapp/bug5nnnn/bug56334.jspx >> Modified: >> tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java >> tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java >> tomcat/trunk/test/org/apache/jasper/compiler/TestParser.java >> tomcat/trunk/webapps/docs/changelog.xml >> >> Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java >> URL: >> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1586890&r1=1586889&r2=1586890&view=diff >> ============================================================================== >> --- tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java (original) >> +++ tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Sat Apr 12 >> 20:07:54 2014 >> @@ -209,7 +209,7 @@ public class ELParser { >> prev = 0; >> if (ch == '\\') { >> buf.append('\\'); >> - prev = '\\'; >> + continue; >> } else if (ch == '$' >> || (!isDeferredSyntaxAllowedAsLiteral && ch == >> '#')) { >> buf.append(ch); > > I think it needs 'continue;' here in this branch as well. > (So that "if (ch == '\\' || ch == '$' " block below does not happen > and does not set prev=ch. ) > > I wonder what a test case it will be.
I'll take a look. >> @@ -468,18 +468,18 @@ public class ELParser { >> >> @Override >> public void visit(Function n) throws JasperException { >> - output.append(n.getOriginalText()); >> + output.append(Generator.escape(n.getOriginalText())); > > The above method is escaping for Java strings. > E.g. it escapes LF -> '\' + 'n', but that is a wrong escaping for this use > case. Yes. I'd like to blame the jet lag for that one but I think I just wasn't thinking straight. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org