diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-10-24 17:05:31 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-10-24 17:05:31 +0200 |
commit | 51551826ab4a3019950a7979160f68064e4780ff (patch) | |
tree | 95055f297baf18e3bfcc7172ac0210cc3cb32b01 | |
parent | 62ce957a994a7a3e799fc5f196cc72ef4d00a089 (diff) | |
download | rsyslog-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.
-rw-r--r-- | runtime/msg.c | 6 |
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); } |