From: Matthew Jordan Date: Fri, 7 Feb 2014 19:36:15 +0000 (+0000) Subject: funcs/func_cdr: Handle empty time values when extracting parsed values X-Git-Tag: 12.2.0-rc1~168 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8ef1239ae620ab8ce95be26822cfd84bb0a2527;p=thirdparty%2Fasterisk.git funcs/func_cdr: Handle empty time values when extracting parsed values When extracting timestamps that are parsed, time stamp values that are not set (time values of 0.000000) should not actually result in a parsed string. The value should be skipped, and the result of the CDR function should be an empty string. Prior to this patch, the result was fed to the time formatting, which would result in an output of a date/time in 1969. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407747 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/funcs/func_cdr.c b/funcs/func_cdr.c index ce5a126867..0116eee7fa 100644 --- a/funcs/func_cdr.c +++ b/funcs/func_cdr.c @@ -291,9 +291,13 @@ static void cdr_read_callback(void *data, struct stasis_subscription *sub, struc args.variable, tempbuf, ast_channel_name(payload->chan)); return; } - fmt_time.tv_usec = tv_usec; - ast_localtime(&fmt_time, &tm, NULL); - ast_strftime(tempbuf, sizeof(tempbuf), "%Y-%m-%d %T", &tm); + if (fmt_time.tv_sec) { + fmt_time.tv_usec = tv_usec; + ast_localtime(&fmt_time, &tm, NULL); + ast_strftime(tempbuf, sizeof(tempbuf), "%Y-%m-%d %T", &tm); + } else { + tempbuf[0] = '\0'; + } } else if (!strcasecmp("disposition", args.variable)) { int disposition;