Author: markt
Date: Tue Jan  4 18:28:23 2011
New Revision: 1055132

URL: http://svn.apache.org/viewvc?rev=1055132&view=rev
Log:
Partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=49000
Consistently handle name only cookies (which are not spec complaint)

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java
    tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java?rev=1055132&r1=1055131&r2=1055132&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java Tue Jan  4 
18:28:23 2011
@@ -283,7 +283,7 @@ public final class Cookies { // extends 
             // cookie at the end of the cookie header, so if we
             // are past the end of the header, but we have a name
             // skip to the name-only part.
-            if (pos < end && bytes[pos] == '=') {                
+            if (pos < (end - 1) && bytes[pos] == '=') {                
 
                 // Skip whitespace
                 do {

Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java?rev=1055132&r1=1055131&r2=1055132&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java Tue Jan  4 
18:28:23 2011
@@ -17,31 +17,10 @@
 
 package org.apache.tomcat.util.http; 
 
-import junit.framework.Test;
 import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
 
 public class TestCookies extends TestCase {
-    public static void main( String args[] ) {
-       TestRunner.run(suite());
-    }
-    public static Test suite() {
-       TestSuite suite = new TestSuite();
-       suite.addTest(new TestSuite(TestCookies.class));
-       return suite;
-    }
-/*
-       int i = 10000000;
-          // These tests are not really representative 
-         while (i-- > 0) { 
-             test("session=1234567890;name=\"John Q. Public\";");
-        }
-//        runtests();
-    } 
- */
-    
+
     public void testCookies() throws Exception {
         test("foo=bar; a=b", "foo", "bar", "a", "b");
         test("foo=bar;a=b", "foo", "bar", "a", "b");
@@ -120,6 +99,20 @@ public class TestCookies extends TestCas
         test("$Version=0;foo=bar", 0);
     }
 
+
+    public void testNameOnlyCookies() throws Exception {
+        // Bug 49000
+        /*
+        test("fred=1; jim=2; bob", "fred", "1", "jim", "2", "bob", "");
+        test("fred=1; jim=2; bob; george=3", "fred", "1", "jim", "2", "bob", 
"",
+                "george", "3");
+        test("fred=1; jim=2; bob=; george=3", "fred", "1", "jim", "2",
+                "bob", "", "george", "3");
+        */                    
+        test("fred=1; jim=2; bob=", "fred", "1", "jim", "2", "bob", "");
+    }
+
+
     public static void test( String s, int val ) throws Exception {
         System.out.println("Processing [" + s + "]");
         Cookies cs=new Cookies(null);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to