From d421995fdb490c687d27b56aa89bc83afc7c3d06 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Thu, 24 Sep 2009 12:14:17 +0100 Subject: [PATCH] Fix parsing of HTTP Date years. Change-Id: I17157eb145599e6e1a23c5ba77c3c713b8af14ff --- core/java/android/webkit/HttpDateTime.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/java/android/webkit/HttpDateTime.java b/core/java/android/webkit/HttpDateTime.java index 00b2731d14682..2f46f2b974d83 100644 --- a/core/java/android/webkit/HttpDateTime.java +++ b/core/java/android/webkit/HttpDateTime.java @@ -184,11 +184,20 @@ public final class HttpDateTime { } 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) {