From 3741d16503a973a99c724bdab9a255a5f07a3637 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Fri, 29 Sep 2017 16:08:49 +0200 Subject: [PATCH] [System.Net.Http] HttpClient timeout range checks. Fixes #25755 --- .../System.Net.Http/System.Net.Http/HttpClient.cs | 2 +- .../Test/System.Net.Http/HttpClientTest.cs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs b/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs index baa6dd9f0d2..c9fd2354abe 100644 --- a/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs +++ b/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs @@ -96,7 +96,7 @@ namespace System.Net.Http return timeout; } set { - if (value != System.Threading.Timeout.InfiniteTimeSpan && value < TimeSpan.Zero) + if (value != System.Threading.Timeout.InfiniteTimeSpan && (value <= TimeSpan.Zero || value.Ticks > int.MaxValue)) throw new ArgumentOutOfRangeException (); timeout = value; diff --git a/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientTest.cs b/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientTest.cs index 8344c26cc68..c87bb7562a1 100644 --- a/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientTest.cs +++ b/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientTest.cs @@ -308,6 +308,18 @@ namespace MonoTests.System.Net.Http Assert.Fail ("#2"); } catch (ArgumentOutOfRangeException) { } + + try { + client.Timeout = TimeSpan.Zero; + Assert.Fail ("#3"); + } catch (ArgumentOutOfRangeException) { + } + + try { + client.Timeout = new TimeSpan(int.MaxValue + 1L); + Assert.Fail ("#3"); + } catch (ArgumentOutOfRangeException) { + } } [Test] -- 2.25.1