summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-08-21 16:48:00 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-08-21 16:48:00 +0200
commitd8ab04b533a6d2fc224e1931463b91508cc6d701 (patch)
tree5e19ce23633835c7846a43a6ac8611d3deaa1e67
parentfc5c09a7224c2550249aefb19f021a7fabf2c010 (diff)
downloadrsyslog-d8ab04b533a6d2fc224e1931463b91508cc6d701.tar.gz
rsyslog-d8ab04b533a6d2fc224e1931463b91508cc6d701.tar.xz
rsyslog-d8ab04b533a6d2fc224e1931463b91508cc6d701.zip
bugfix: strings improperly reused [backported from v5]
... resulting in some message properties be populated with strings from previous messages. This was caused by an improper predicate check.
-rw-r--r--ChangeLog5
-rw-r--r--runtime/prop.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 55ca5b45..cc9f9ea3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
---------------------------------------------------------------------------
+Version 4.5.3 [v4-beta] (rgerhards), 2009-08-??
+- bugfix: strings improperly reused, resulting in some message properties
+ be populated with strings from previous messages. This was caused by
+ an improper predicate check. [backported from v5]
+---------------------------------------------------------------------------
Version 4.5.2 [v4-beta] (rgerhards), 2009-08-21
- legacy syslog parser changed so that it now accepts date stamps in
wrong case. Some devices seem to create them and I do not see any harm
diff --git a/runtime/prop.c b/runtime/prop.c
index 804f3491..d188b2ed 100644
--- a/runtime/prop.c
+++ b/runtime/prop.c
@@ -174,7 +174,7 @@ rsRetVal CreateOrReuseStringProp(prop_t **ppThis, uchar *psz, int len)
} else {
/* already exists, check if we can re-use it */
GetString(*ppThis, &pszPrev, &lenPrev);
- if(len != lenPrev && ustrcmp(psz, pszPrev)) {
+ if(len != lenPrev || ustrcmp(psz, pszPrev)) {
/* different, need to discard old & create new one */
propDestruct(ppThis);
CHKiRet(CreateStringProp(ppThis, psz, len));