You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2011/02/02 11:52:18 UTC
svn commit: r1066409 -
/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/TagValue.java
Author: bago
Date: Wed Feb 2 10:52:17 2011
New Revision: 1066409
URL: http://svn.apache.org/viewvc?rev=1066409&view=rev
Log:
Optimized valuetag validation regex so to limit stack abuse (JDKIM-26)
Modified:
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/TagValue.java
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/TagValue.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/TagValue.java?rev=1066409&r1=1066408&r2=1066409&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/TagValue.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/tagvalue/TagValue.java Wed Feb 2 10:52:17 2011
@@ -39,10 +39,12 @@ public class TagValue {
private static Pattern tagPattern = Pattern
.compile("^[A-Za-z][A-Za-z0-9_]*$");
- private static final String tval = "[^; \t\r\n]+";
+ // Use possessive matching to avoid heavy stack usage
+ private static final String tval = "[^; \t\r\n]++";
// validate value chars
- private static Pattern valuePattern = Pattern.compile("^(" + tval
- + "((\r\n[\t ]|[\t ])+" + tval + ")*)?$");
+ // Use possessive matching to avoid heavy stack usage
+ private static Pattern valuePattern = Pattern.compile("^(?:" + tval
+ + "(?:(?:(?:\r\n)?[\t ])++" + tval + ")*+)?$");
// we may use a TreeMap because we may need to know original order.
private Map<String, CharSequence> tagValues;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org