From b162fda895e825eb6ea768793d7381a76e3dadf1 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Wed, 24 May 2023 00:11:47 -0500 Subject: [PATCH] Don't crash if a bad date is provided to data provider formatter --- wxdata/source/scwx/provider/aws_level2_data_provider.cpp | 5 +++++ wxdata/source/scwx/provider/aws_level3_data_provider.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/wxdata/source/scwx/provider/aws_level2_data_provider.cpp b/wxdata/source/scwx/provider/aws_level2_data_provider.cpp index 53b0f85f..6ac939c0 100644 --- a/wxdata/source/scwx/provider/aws_level2_data_provider.cpp +++ b/wxdata/source/scwx/provider/aws_level2_data_provider.cpp @@ -52,6 +52,11 @@ AwsLevel2DataProvider::operator=(AwsLevel2DataProvider&&) noexcept = default; std::string AwsLevel2DataProvider::GetPrefix(std::chrono::system_clock::time_point date) { + if (date < std::chrono::system_clock::time_point {}) + { + date = std::chrono::system_clock::time_point {}; + } + return fmt::format("{0:%Y/%m/%d}/{1}/", fmt::gmtime(date), p->radarSite_); } diff --git a/wxdata/source/scwx/provider/aws_level3_data_provider.cpp b/wxdata/source/scwx/provider/aws_level3_data_provider.cpp index 327f4c9f..029dd5db 100644 --- a/wxdata/source/scwx/provider/aws_level3_data_provider.cpp +++ b/wxdata/source/scwx/provider/aws_level3_data_provider.cpp @@ -78,6 +78,11 @@ AwsLevel3DataProvider::operator=(AwsLevel3DataProvider&&) noexcept = default; std::string AwsLevel3DataProvider::GetPrefix(std::chrono::system_clock::time_point date) { + if (date < std::chrono::system_clock::time_point {}) + { + date = std::chrono::system_clock::time_point {}; + } + return fmt::format( "{0}_{1}_{2:%Y_%m_%d}_", p->siteId_, p->product_, fmt::gmtime(date)); }