2010-03-01 Miguel de Icaza <miguel@novell.com>
authorMiguel de Icaza <miguel@gnome.org>
Mon, 1 Mar 2010 16:48:26 +0000 (16:48 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Mon, 1 Mar 2010 16:48:26 +0000 (16:48 -0000)
* DateTime.cs (DoParse): patch from Tom Philpot, while using
TryParse if s is null, we should return false, not crash.

svn path=/trunk/mcs/; revision=152708

mcs/class/corlib/System/ChangeLog
mcs/class/corlib/System/DateTime.cs
mcs/class/corlib/Test/System/DateTimeTest.cs

index d9fb5ada6d6f759f88852e63885e347174c38420..f243b55d332f4023c1af3fb469666b5c61f0bbaa 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-01  Miguel de Icaza  <miguel@novell.com>
+
+       * DateTime.cs (DoParse): patch from Tom Philpot, while using
+       TryParse if s is null, we should return false, not crash.
+
 2010-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * Type.cs: Forgot a pair of #if NET_4_0.
index 996ccb541b73742396a2d097db10ed0d26fe9332..96466e04e12ab3540f76086294dd483b7123dfe7 100644 (file)
@@ -1165,6 +1165,9 @@ namespace System
                        if (format == null)
                                return false;
 
+                       if (s == null)
+                               return false;
+                               
                        if ((style & DateTimeStyles.AllowLeadingWhite) != 0) {
                                format = format.TrimStart (null);
 
index 100ae4f5931bf5d4fdaa2b05abffb3483dd8bfbd..24299ef329f2ea642af68b921f111d1bd9694fcd 100644 (file)
@@ -2417,6 +2417,15 @@ namespace MonoTests.System
                        // bug #444103.
                        DateTime.ParseExact ("12:00:00", "HH:mm:ss.FFFFFFF", null);
                }
+               
+               [Test]
+               public void TryParseExact_NullString ()
+               {
+                       DateTime dt;
+                       DateTime.TryParseExact(null, "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'", CultureInfo.InvariantCulture,
+                                              DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal, out dt);
+                       Assert.AreEqual(default(DateTime), dt);
+               }
 #endif
        }
 }