From: Martin Willi Date: Tue, 15 Oct 2013 14:10:05 +0000 (+0200) Subject: utils: Printf() defined time output should gmtime/localtime_r() fail X-Git-Tag: 5.2.0dr6~24^2~123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f129319ffd44f6e065a648283a77713c47b1d73;p=thirdparty%2Fstrongswan.git utils: Printf() defined time output should gmtime/localtime_r() fail --- diff --git a/src/libstrongswan/utils/utils.c b/src/libstrongswan/utils/utils.c index 7cca845f73..fe3b32f6c3 100644 --- a/src/libstrongswan/utils/utils.c +++ b/src/libstrongswan/utils/utils.c @@ -648,20 +648,23 @@ int time_printf_hook(printf_hook_data_t *data, printf_hook_spec_t *spec, }; time_t *time = *((time_t**)(args[0])); bool utc = *((int*)(args[1])); - struct tm t; + struct tm t, *ret = NULL; - if (*time == UNDEFINED_TIME) + if (*time != UNDEFINED_TIME) { - return print_in_hook(data, "--- -- --:--:--%s----", - utc ? " UTC " : " "); - } - if (utc) - { - gmtime_r(time, &t); + if (utc) + { + ret = gmtime_r(time, &t); + } + else + { + ret = localtime_r(time, &t); + } } - else + if (ret == NULL) { - localtime_r(time, &t); + return print_in_hook(data, "--- -- --:--:--%s----", + utc ? " UTC " : " "); } return print_in_hook(data, "%s %02d %02d:%02d:%02d%s%04d", months[t.tm_mon], t.tm_mday, t.tm_hour, t.tm_min,