author | Misaki Miyashita <Misaki.Miyashita@Oracle.COM> |
Thu, 13 Oct 2016 14:47:30 -0700 | |
changeset 7103 | 398c9d0ab0f3 |
parent 4431 | d851c2eccfcc |
permissions | -rw-r--r-- |
4431
d851c2eccfcc
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 |
d851c2eccfcc
PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff
changeset
|
2 |
# source: written internally |
d851c2eccfcc
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. |
d851c2eccfcc
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), |
d851c2eccfcc
PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff
changeset
|
5 |
# last noticed in 8.4.0 |
d851c2eccfcc
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 |
d851c2eccfcc
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 |
d851c2eccfcc
PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff
changeset
|
8 |
@@ -336,8 +336,10 @@ |
d851c2eccfcc
PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff
changeset
|
9 |
|
d851c2eccfcc
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, |
d851c2eccfcc
PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff
changeset
|
11 |
* we must decompress it. |
d851c2eccfcc
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 |
d851c2eccfcc
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'!). |
d851c2eccfcc
PSARC/2014/388 rsyslog 8.4.2
James Chang <james.c.chang@Oracle.COM>
parents:
diff
changeset
|
14 |
*/ |
d851c2eccfcc
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!) */ |
d851c2eccfcc
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!) */ |
d851c2eccfcc
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 |
d851c2eccfcc
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 |
d851c2eccfcc
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 |