Parse "yy" correctly for AFDate_FormatEx().

AFDate_FormatEx("yymmdd") should not try to read the first 4 digits in
the string.

BUG=chromium:436572

Change-Id: I123b70b8a22d1e2c87e61ee7bf0b177b49571ae3
Reviewed-on: https://pdfium-review.googlesource.com/29731
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index ea4ea71..375eb6f 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -559,7 +559,7 @@
         } else if (remaining == 1 || format[i + 2] != c) {
           switch (c) {
             case 'y':
-              nYear = ParseStringInteger(value, j, &nSkip, 4);
+              nYear = ParseStringInteger(value, j, &nSkip, 2);
               i += 2;
               j += nSkip;
               break;
diff --git a/fxjs/cjs_publicmethods_embeddertest.cpp b/fxjs/cjs_publicmethods_embeddertest.cpp
index 90efee9..9413aa6 100644
--- a/fxjs/cjs_publicmethods_embeddertest.cpp
+++ b/fxjs/cjs_publicmethods_embeddertest.cpp
@@ -99,6 +99,14 @@
   date = RoundDownDate(date);
   EXPECT_DOUBLE_EQ(1107216000000.0, date);
   EXPECT_FALSE(bWrongFormat);
+
+  // 2005 in a different format. https://crbug.com/436572
+  bWrongFormat = false;
+  date =
+      CJS_PublicMethods::MakeRegularDate(L"050201", L"yymmdd", &bWrongFormat);
+  date = RoundDownDate(date);
+  EXPECT_DOUBLE_EQ(1107216000000.0, date);
+  EXPECT_FALSE(bWrongFormat);
 }
 
 TEST_F(CJS_PublicMethodsEmbedderTest, MakeFormatDate) {