diff --git a/client/cmdlft55xx.c b/client/cmdlft55xx.c index 77b520215..6c4f0b03e 100644 --- a/client/cmdlft55xx.c +++ b/client/cmdlft55xx.c @@ -6,6 +6,12 @@ //----------------------------------------------------------------------------- // Low frequency T55xx commands //----------------------------------------------------------------------------- +/* Ensure localtime_r is available even with -std=c99; must be included before + */ +#if !defined(_WIN32) +#define _POSIX_C_SOURCE 200112L +#endif + #include "cmdlft55xx.h" // Default configuration @@ -1199,9 +1205,10 @@ static int CmdT55xxReadTrace(const char *Cmd) { si += 5; data.dw = PackBits(si, 15, DemodBuffer); - time_t t = time(NULL); - struct tm tm = *localtime(&t); - if (data.year > tm.tm_year - 110) + struct tm *t = NULL; + time_t now = time(NULL); + localtime_r(&now, t); + if (data.year > t.tm_year - 110) data.year += 2000; else data.year += 2010; diff --git a/client/cmdmain.c b/client/cmdmain.c index e74425f51..615ec72e2 100644 --- a/client/cmdmain.c +++ b/client/cmdmain.c @@ -9,7 +9,6 @@ // Main command parser entry point //----------------------------------------------------------------------------- - /* Ensure gmtime_r is available even with -std=c99; must be included before */ #if !defined(_WIN32) @@ -24,7 +23,7 @@ static int CmdRem(const char *Cmd) { memset(buf, 0x00, sizeof(buf)); struct tm *curTime = NULL; - time_t now = time(0); + time_t now = time(NULL); gmtime_r(&now, curTime); strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%SZ", curTime); // ISO8601 PrintAndLogEx(NORMAL, "%s remark: %s", buf, Cmd);