diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-08-26 12:57:06 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-08-26 12:57:06 +0200 |
commit | aba8792c8a82ef52a3188ee7295e501ca21dae3b (patch) | |
tree | 5861cbe60f1bda08e700c15a6a0b69e084dcc6ea /runtime/msg.h | |
parent | c024a3784fbab28d724e038b784d3b72125848c4 (diff) | |
download | rsyslog-aba8792c8a82ef52a3188ee7295e501ca21dae3b.tar.gz rsyslog-aba8792c8a82ef52a3188ee7295e501ca21dae3b.tar.xz rsyslog-aba8792c8a82ef52a3188ee7295e501ca21dae3b.zip |
bugfix: message sanitation had some issues
- control character DEL was not properly escaped
- NUL and LF characters were not properly stripped if no control
character replacement was to be done
- NUL characters in the message body were silently dropped (this was
a regeression introduced by some of the recent optimizations)
Diffstat (limited to 'runtime/msg.h')
-rw-r--r-- | runtime/msg.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/runtime/msg.h b/runtime/msg.h index 0b346f7b..3a02365b 100644 --- a/runtime/msg.h +++ b/runtime/msg.h @@ -192,6 +192,23 @@ uchar *propIDToName(propid_t propID); extern void (*funcMsgPrepareEnqueue)(msg_t *pMsg); #define MsgPrepareEnqueue(pMsg) funcMsgPrepareEnqueue(pMsg) + +/* ------------------------------ some inline functions ------------------------------ */ + +/* set raw message size. This is needed in some cases where a trunctation is necessary + * but the raw message must not be newly set. The most important (and currently only) + * use case is if we remove trailing LF or NUL characters. Note that the size can NOT + * be extended, only shrunk! + * rgerhards, 2009-08-26 + */ +static inline void +MsgSetRawMsgSize(msg_t *pMsg, size_t newLen) +{ + assert(newLen <= (size_t) pMsg->iLenRawMsg); + pMsg->iLenRawMsg = newLen; +} + + #endif /* #ifndef MSG_H_INCLUDED */ /* vim:set ai: */ |