Author: markt
Date: Wed May 21 19:45:46 2014
New Revision: 1596660
URL: http://svn.apache.org/r1596660
Log:
Apply patch 11 from jboynes to improve cookie handling.
Eliminate an unneeded StringBuilder.
I also added to TODO marker.
The patch should be safe since the logic is unchanged.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java?rev=1596660&r1=1596659&r2=1596660&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Wed May
21 19:45:46 2014
@@ -206,32 +206,24 @@ public class SetCookieSupport {
buf.append("\"\"");
} else if (alreadyQuoted(value)) {
buf.append('"');
- buf.append(escapeDoubleQuotes(value,1,value.length()-1));
+ escapeDoubleQuotes(buf, value,1,value.length()-1);
buf.append('"');
} else if (needsQuotes(value)) {
buf.append('"');
- buf.append(escapeDoubleQuotes(value,0,value.length()));
+ escapeDoubleQuotes(buf, value,0,value.length());
buf.append('"');
} else {
buf.append(value);
}
}
- /**
- * Escapes any double quotes in the given string.
- *
- * @param s the input string
- * @param beginIndex start index inclusive
- * @param endIndex exclusive
- * @return The (possibly) escaped string
- */
- private static String escapeDoubleQuotes(String s, int beginIndex, int
endIndex) {
-
- if (s == null || s.length() == 0 || s.indexOf('"') == -1) {
- return s;
+ private static void escapeDoubleQuotes(StringBuffer b, String s, int
beginIndex, int endIndex) {
+ // TODO: bug55975: this checks for '"' but not for '\' which also
needs escaping
+ if (s.indexOf('"') == -1) {
+ b.append(s);
+ return;
}
- StringBuilder b = new StringBuilder();
for (int i = beginIndex; i < endIndex; i++) {
char c = s.charAt(i);
if (c == '\\' ) {
@@ -247,8 +239,6 @@ public class SetCookieSupport {
b.append(c);
}
}
-
- return b.toString();
}
private static boolean needsQuotes(String value) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]