components/rsyslog/patches/runtime-parser.c.patch
author James Chang <james.c.chang@Oracle.COM>
Tue, 09 Jun 2015 14:56:12 -0700
branchs11-update
changeset 4450 423f06e4bc35
permissions -rw-r--r--
PSARC/2014/388 rsyslog 8.4.2 17506040 Upgrade rsyslog to 8.4.2 17928635 rsyslog Uncompression of a message failed with return code -3 19723420 problem in SERVICE/RSYSLOG 20573000 rsyslog man page missing attributes 18887444 Rsyslog does not deliver queued messages after restart.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4450
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     1
# This patch is a fix for proper uncompression 
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     2
# source: written internally
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     3
# Should be sent upstream, but hasn't been.
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     4
# Bug has existed a long time (probably since rsyslog implemented compression),
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     5
# last noticed in 8.4.0
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     6
--- rsyslog/runtime/parser.c	2014-08-18 02:14:06.000000000 -0700
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     7
+++ rsyslog/runtime/parser.c	2014-09-18 14:46:49.068679264 -0700
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     8
@@ -336,8 +336,10 @@
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
     9
 
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    10
 	/* we first need to check if we have a compressed record. If so,
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    11
 	 * we must decompress it.
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    12
+	 * If NO_PRI_IN_RAW is set, this is a local Solaris message and
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    13
+	 * therefore not compressed (though it may well begin with 'z'!).
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    14
 	 */
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    15
-	if(lenMsg > 0 && *pszMsg == 'z') { /* compressed data present? (do NOT change order if conditions!) */
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    16
+	if(lenMsg > 0 && *pszMsg == 'z' && pMsg->msgFlags & NO_PRI_IN_RAW == 0) { /* compressed data present? (do NOT change order if conditions!) */
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    17
 		/* we have compressed data, so let's deflate it. We support a maximum
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    18
 		 * message size of iMaxLine. If it is larger, an error message is logged
423f06e4bc35 PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff changeset
    19
 		 * and the message is dropped. We do NOT try to decompress larger messages