diff options
Diffstat (limited to 'app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch')
-rw-r--r-- | app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch deleted file mode 100644 index b42618048e88..000000000000 --- a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 3a10a78edeef9725f69a24d633bb394e365145f0 Mon Sep 17 00:00:00 2001 -From: Janmejay Singh <singh.janmejay@gmail.com> -Date: Wed, 30 Sep 2015 17:24:38 +0530 -Subject: [PATCH] Fixed lookup-table reload bug, which ignored table-length of - reloaded table, resulting in additional entries being invisible while - looking-up (binary-search would work with old-table-length). This would be a - security-issue or may cause a crash if reloaded table is actually smaller - (memory access beyond table). - ---- - runtime/lookup.c | 1 + - tests/Makefile.am | 5 +++++ - tests/diag.sh | 4 ++++ - tests/lookup_table.sh | 24 ++++++++++++++++++++++++ - tests/testsuites/lookup_table.conf | 9 +++++++++ - tests/testsuites/xlate.lkp_tbl | 5 +++++ - tests/testsuites/xlate_more.lkp_tbl | 6 ++++++ - 7 files changed, 55 insertions(+) - create mode 100755 tests/lookup_table.sh - create mode 100644 tests/testsuites/lookup_table.conf - create mode 100644 tests/testsuites/xlate.lkp_tbl - create mode 100644 tests/testsuites/xlate_more.lkp_tbl - -diff --git a/runtime/lookup.c b/runtime/lookup.c -index 096bf09..5aa00b9 100644 ---- a/runtime/lookup.c -+++ b/runtime/lookup.c -@@ -203,6 +203,7 @@ lookupReload(lookup_t *pThis) - } - free(pThis->d.strtab); - pThis->d.strtab = newlu.d.strtab; /* hand table AND ALL STRINGS over! */ -+ pThis->nmemb = newlu.nmemb; - pthread_rwlock_unlock(&pThis->rwlock); - errmsg.LogError(0, RS_RET_OK, "lookup table '%s' reloaded from file '%s'", - pThis->name, pThis->filename); -diff --git a/tests/Makefile.am b/tests/Makefile.am -index d77728a..49cb641 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -130,6 +130,7 @@ TESTS += \ - incltest_dir_wildcard.sh \ - incltest_dir_empty_wildcard.sh \ - linkedlistqueue.sh \ -+ lookup_table.sh \ - key_dereference_on_uninitialized_variable_space.sh - - -@@ -860,6 +861,10 @@ EXTRA_DIST= \ - testsuites/rscript_re_extract.conf \ - rscript_re_match.sh \ - testsuites/rscript_re_match.conf \ -+ lookup_table.sh \ -+ testsuites/lookup_table.conf \ -+ testsuites/xlate.lkp_tbl \ -+ testsuites/xlate_more.lkp_tbl \ - cfg.sh - - # TODO: re-enable -diff --git a/tests/diag.sh b/tests/diag.sh -index 95d6adb..c489fff 100755 ---- a/tests/diag.sh -+++ b/tests/diag.sh -@@ -195,6 +195,10 @@ case $1 in - echo WaitMainQueueEmpty | ./diagtalker || . $srcdir/diag.sh error-exit $? - fi - ;; -+ 'issue-HUP') # shut rsyslogd down when main queue is empty. $2 is the instance. -+ kill -HUP `cat rsyslog$2.pid` -+ ./msleep 1000 -+ ;; - 'shutdown-when-empty') # shut rsyslogd down when main queue is empty. $2 is the instance. - if [ "$2" == "2" ] - then -diff --git a/tests/lookup_table.sh b/tests/lookup_table.sh -new file mode 100755 -index 0000000..fae2fab ---- /dev/null -+++ b/tests/lookup_table.sh -@@ -0,0 +1,24 @@ -+#!/bin/bash -+# added 2015-09-30 by singh.janmejay -+# This file is part of the rsyslog project, released under ASL 2.0 -+echo =============================================================================== -+echo \[lookup_table_reload.sh\]: test for lookup-table and HUP based reloading of it -+. $srcdir/diag.sh init -+cp $srcdir/testsuites/xlate.lkp_tbl $srcdir/xlate.lkp_tbl -+. $srcdir/diag.sh startup lookup_table.conf -+. $srcdir/diag.sh injectmsg 0 3 -+. $srcdir/diag.sh wait-queueempty -+. $srcdir/diag.sh content-check "msgnum:00000000: foo_old" -+. $srcdir/diag.sh content-check "msgnum:00000001: bar_old" -+. $srcdir/diag.sh assert-content-missing "baz" -+cp $srcdir/testsuites/xlate_more.lkp_tbl $srcdir/xlate.lkp_tbl -+. $srcdir/diag.sh issue-HUP -+. $srcdir/diag.sh injectmsg 0 3 -+echo doing shutdown -+. $srcdir/diag.sh shutdown-when-empty -+echo wait on shutdown -+. $srcdir/diag.sh wait-shutdown -+. $srcdir/diag.sh content-check "msgnum:00000000: foo_new" -+. $srcdir/diag.sh content-check "msgnum:00000001: bar_new" -+. $srcdir/diag.sh content-check "msgnum:00000002: baz" -+. $srcdir/diag.sh exit -diff --git a/tests/testsuites/lookup_table.conf b/tests/testsuites/lookup_table.conf -new file mode 100644 -index 0000000..29bd805 ---- /dev/null -+++ b/tests/testsuites/lookup_table.conf -@@ -0,0 +1,9 @@ -+$IncludeConfig diag-common.conf -+ -+lookup_table(name="xlate" file="xlate.lkp_tbl") -+ -+template(name="outfmt" type="string" string="- %msg% %$.lkp%\n") -+ -+set $.lkp = lookup("xlate", $msg); -+ -+action(type="omfile" file="./rsyslog.out.log" template="outfmt") -diff --git a/tests/testsuites/xlate.lkp_tbl b/tests/testsuites/xlate.lkp_tbl -new file mode 100644 -index 0000000..30e2796 ---- /dev/null -+++ b/tests/testsuites/xlate.lkp_tbl -@@ -0,0 +1,5 @@ -+{ -+ "table":[ -+ {"index":" msgnum:00000000:", "value":"foo_old" }, -+ {"index":" msgnum:00000001:", "value":"bar_old" }] -+} -diff --git a/tests/testsuites/xlate_more.lkp_tbl b/tests/testsuites/xlate_more.lkp_tbl -new file mode 100644 -index 0000000..2d3f452 ---- /dev/null -+++ b/tests/testsuites/xlate_more.lkp_tbl -@@ -0,0 +1,6 @@ -+{ -+ "table":[ -+ {"index":" msgnum:00000000:", "value":"foo_new" }, -+ {"index":" msgnum:00000001:", "value":"bar_new" }, -+ {"index":" msgnum:00000002:", "value":"baz" }] -+} |