From 0aaa6989c86eb6f15f49faee7ab0c013ebe89171 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Mon, 28 Jan 2019 11:13:32 +0100 Subject: Use reentrant gmtime and localtime functions, and other tweaks --- src/fig/FIG0_10.cpp | 16 ++++++++-------- src/fig/FIG0_9.cpp | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) (limited to 'src/fig') diff --git a/src/fig/FIG0_10.cpp b/src/fig/FIG0_10.cpp index 3ce2847..56ce9fb 100644 --- a/src/fig/FIG0_10.cpp +++ b/src/fig/FIG0_10.cpp @@ -101,22 +101,22 @@ FillStatus FIG0_10::fill(uint8_t *buf, size_t max_size) buf += 2; remaining -= 2; - tm* timeData; + struct tm timeData; time_t dab_time_seconds = 0; uint32_t dab_time_millis = 0; get_dab_time(&dab_time_seconds, &dab_time_millis); - timeData = gmtime(&dab_time_seconds); + gmtime_r(&dab_time_seconds, &timeData); fig0_10->RFU = 0; - fig0_10->setMJD(gregorian2mjd(timeData->tm_year + 1900, - timeData->tm_mon + 1, - timeData->tm_mday)); + fig0_10->setMJD(gregorian2mjd(timeData.tm_year + 1900, + timeData.tm_mon + 1, + timeData.tm_mday)); fig0_10->LSI = 0; fig0_10->ConfInd = 1; fig0_10->UTC = 1; - fig0_10->setHours(timeData->tm_hour); - fig0_10->Minutes = timeData->tm_min; - fig0_10->Seconds = timeData->tm_sec; + fig0_10->setHours(timeData.tm_hour); + fig0_10->Minutes = timeData.tm_min; + fig0_10->Seconds = timeData.tm_sec; fig0_10->setMilliseconds(dab_time_millis); buf += 6; remaining -= 6; diff --git a/src/fig/FIG0_9.cpp b/src/fig/FIG0_9.cpp index cf73625..dcee17c 100644 --- a/src/fig/FIG0_9.cpp +++ b/src/fig/FIG0_9.cpp @@ -139,8 +139,9 @@ FillStatus FIG0_9::fill(uint8_t *buf, size_t max_size) if (ensemble->lto_auto) { time_t now = time(NULL); - struct tm* ltime = localtime(&now); - time_t now2 = timegm(ltime); + struct tm ltime; + localtime_r(&now, <ime); + time_t now2 = timegm(<ime); ensemble->lto = (now2 - now) / 1800; } -- cgit v1.2.3