summaryrefslogtreecommitdiffstats
path: root/runtime/msg.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2013-10-24 17:05:31 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2013-10-24 17:05:31 +0200
commit51551826ab4a3019950a7979160f68064e4780ff (patch)
tree95055f297baf18e3bfcc7172ac0210cc3cb32b01 /runtime/msg.c
parent62ce957a994a7a3e799fc5f196cc72ef4d00a089 (diff)
downloadrsyslog-51551826ab4a3019950a7979160f68064e4780ff.tar.gz
rsyslog-51551826ab4a3019950a7979160f68064e4780ff.tar.bz2
rsyslog-51551826ab4a3019950a7979160f68064e4780ff.zip
refactoring regression fix: segfault if $$now is used in script
Thanks to Pavel Levshin for finding this bug.
Diffstat (limited to 'runtime/msg.c')
-rw-r--r--runtime/msg.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index 7e01b185..f634329f 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -2470,11 +2470,17 @@ typedef enum ENOWType { NOW_NOW, NOW_YEAR, NOW_MONTH, NOW_DAY, NOW_HOUR, NOW_HHO
static uchar *getNOW(eNOWType eNow, struct syslogTime *t)
{
uchar *pBuf;
+ struct syslogTime tt;
if((pBuf = (uchar*) MALLOC(sizeof(uchar) * tmpBUFSIZE)) == NULL) {
return NULL;
}
+ if(t == NULL) { /* can happen if called via script engine */
+ datetime.getCurrTime(&tt, NULL);
+ t = &tt;
+ }
+
if(t->year == 0) { /* not yet set! */
datetime.getCurrTime(t, NULL);
}