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