diff options
| author | 2010-11-10 08:52:33 -0800 | |
|---|---|---|
| committer | 2010-11-10 08:52:33 -0800 | |
| commit | 5d4c6226caddfb5fa1cee71aa6f90e24e56e53c0 (patch) | |
| tree | 85c1483bdf21336fb9cc3b6af89dee114a3e0552 | |
| parent | 5ee0c8832fdfc7a059f52ad4e8b6d2a78f694f3e (diff) | |
| parent | 87ad930037a5ccb915d3ff3675135d405af092d7 (diff) | |
Merge "Correctly parse cookies with spaces after = in attributes"
| -rw-r--r-- | core/java/android/webkit/CookieManager.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/core/java/android/webkit/CookieManager.java b/core/java/android/webkit/CookieManager.java index 8691714c01ff..0e9d9b797728 100644 --- a/core/java/android/webkit/CookieManager.java +++ b/core/java/android/webkit/CookieManager.java @@ -951,8 +951,12 @@ public final class CookieManager { } equalIndex = cookieString.indexOf(EQUAL, index); if (equalIndex > 0) { - String name = cookieString.substring(index, equalIndex) - .toLowerCase(); + String name = cookieString.substring(index, equalIndex).toLowerCase(); + int valueIndex = equalIndex + 1; + while (valueIndex < length && cookieString.charAt(valueIndex) == WHITE_SPACE) { + valueIndex++; + } + if (name.equals(EXPIRES)) { int comaIndex = cookieString.indexOf(COMMA, equalIndex); @@ -960,7 +964,7 @@ public final class CookieManager { // (Weekday, DD-Mon-YY HH:MM:SS GMT) if it applies. // "Wednesday" is the longest Weekday which has length 9 if ((comaIndex != -1) && - (comaIndex - equalIndex <= 10)) { + (comaIndex - valueIndex <= 10)) { index = comaIndex + 1; } } @@ -975,8 +979,7 @@ public final class CookieManager { } else { index = Math.min(semicolonIndex, commaIndex); } - String value = - cookieString.substring(equalIndex + 1, index); + String value = cookieString.substring(valueIndex, index); // Strip quotes if they exist if (value.length() > 2 && value.charAt(0) == QUOTATION) { |