summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2012-09-25 13:52:41 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-10-11 18:10:45 +0200
commit3b5e2ec7b2d21cc145b62e8e6bcf5e58eb94918c (patch)
tree4a9201d4c7a77fbfb0e1b36557566be39feb92d5
parent3421209cd550b9470c218a4cda578b7aad42529f (diff)
downloadrsyslog-3b5e2ec7b2d21cc145b62e8e6bcf5e58eb94918c.tar.gz
rsyslog-3b5e2ec7b2d21cc145b62e8e6bcf5e58eb94918c.tar.xz
rsyslog-3b5e2ec7b2d21cc145b62e8e6bcf5e58eb94918c.zip
Fix crash when date properties are used without a template
E.g. in > set $!time = $timereported; > set $!time_rcvd = $timegenerated; pTpe is set to NULL by the caller. (Is "default" the correct format to use?) Signed-off-by: Miloslav Trmač <mitr@redhat.com>
-rw-r--r--runtime/msg.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index b79e4756..b0b93f98 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -2696,6 +2696,7 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe,
uchar *pBuf;
int iLen;
short iOffs;
+ enum tplFormatTypes datefmt;
BEGINfunc
assert(pMsg != NULL);
@@ -2715,7 +2716,11 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe,
bufLen = getMSGLen(pMsg);
break;
case PROP_TIMESTAMP:
- pRes = (uchar*)getTimeReported(pMsg, pTpe->data.field.eDateFormat);
+ if (pTpe != NULL)
+ datefmt = pTpe->data.field.eDateFormat;
+ else
+ datefmt = tplFmtDefault;
+ pRes = (uchar*)getTimeReported(pMsg, datefmt);
break;
case PROP_HOSTNAME:
pRes = (uchar*)getHOSTNAME(pMsg);
@@ -2765,7 +2770,11 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe,
pRes = (uchar*)getSeverityStr(pMsg);
break;
case PROP_TIMEGENERATED:
- pRes = (uchar*)getTimeGenerated(pMsg, pTpe->data.field.eDateFormat);
+ if (pTpe != NULL)
+ datefmt = pTpe->data.field.eDateFormat;
+ else
+ datefmt = tplFmtDefault;
+ pRes = (uchar*)getTimeGenerated(pMsg, datefmt);
break;
case PROP_PROGRAMNAME:
pRes = getProgramName(pMsg, LOCK_MUTEX);