Fix parsing of HTTP Date years.
Change-Id: I17157eb145599e6e1a23c5ba77c3c713b8af14ff
diff --git a/core/java/android/webkit/HttpDateTime.java b/core/java/android/webkit/HttpDateTime.java
index 00b2731..2f46f2b 100644
--- a/core/java/android/webkit/HttpDateTime.java
+++ b/core/java/android/webkit/HttpDateTime.java
@@ -184,11 +184,20 @@
} else {
return year + 2000;
}
- } else
- return (yearString.charAt(0) - '0') * 1000
+ } else if (yearString.length() == 3) {
+ // According to RFC 2822, three digit years should be added to 1900.
+ int year = (yearString.charAt(0) - '0') * 100
+ + (yearString.charAt(1) - '0') * 10
+ + (yearString.charAt(2) - '0');
+ return year + 1900;
+ } else if (yearString.length() == 4) {
+ return (yearString.charAt(0) - '0') * 1000
+ (yearString.charAt(1) - '0') * 100
+ (yearString.charAt(2) - '0') * 10
+ (yearString.charAt(3) - '0');
+ } else {
+ return 1970;
+ }
}
private static TimeOfDay getTime(String timeString) {