summaryrefslogtreecommitdiffstats
path: root/runtime/msg.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-08-26 12:57:06 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-08-26 12:57:06 +0200
commitaba8792c8a82ef52a3188ee7295e501ca21dae3b (patch)
tree5861cbe60f1bda08e700c15a6a0b69e084dcc6ea /runtime/msg.h
parentc024a3784fbab28d724e038b784d3b72125848c4 (diff)
downloadrsyslog-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.h17
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:
*/