From 47a57851792b48f949ed6254d4b2ee117c9e23fa Mon Sep 17 00:00:00 2001 From: disarray2077 <86157825+disarray2077@users.noreply.github.com> Date: Mon, 21 Jun 2021 17:06:33 -0300 Subject: [PATCH] Fix a thread safety issue in TimeZoneInfo --- BeefLibs/corlib/src/TimeZoneInfo.bf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/BeefLibs/corlib/src/TimeZoneInfo.bf b/BeefLibs/corlib/src/TimeZoneInfo.bf index e3aa87ac..a14a4127 100644 --- a/BeefLibs/corlib/src/TimeZoneInfo.bf +++ b/BeefLibs/corlib/src/TimeZoneInfo.bf @@ -253,7 +253,10 @@ namespace System { if (rule != null) rule = rule.Clone(); oneYearLocFromUtc = new OffsetAndRule(year, currentYear.BaseUtcOffset, rule); - m_oneYearLocalFromUtc = oneYearLocFromUtc; + if (Interlocked.CompareExchange(ref m_oneYearLocalFromUtc, null, oneYearLocFromUtc) != null) { + delete oneYearLocFromUtc; + oneYearLocFromUtc = m_oneYearLocalFromUtc; + } } return oneYearLocFromUtc; }