diff options
| author | Brian Carlstrom <bdc@google.com> | 2010-11-09 22:03:17 -0800 |
|---|---|---|
| committer | Brian Carlstrom <bdc@google.com> | 2010-11-09 22:03:17 -0800 |
| commit | 87ad930037a5ccb915d3ff3675135d405af092d7 (patch) | |
| tree | a62d12078dc760076634465b3cef904cc3d6aad2 /core/java | |
| parent | cce1d2a60bc1ef10ec6beb338ec3d4cf94486c47 (diff) | |
| download | frameworks_base-87ad930037a5ccb915d3ff3675135d405af092d7.zip frameworks_base-87ad930037a5ccb915d3ff3675135d405af092d7.tar.gz frameworks_base-87ad930037a5ccb915d3ff3675135d405af092d7.tar.bz2 | |
Correctly parse cookies with spaces after = in attributes
Bug: 3167208
Change-Id: I8adebf9f9e92967a3250e61ccfbb45e02bbee3f9
Diffstat (limited to 'core/java')
| -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 8691714..0e9d9b7 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) { |
