[PATCH v2 0/4] makedumpfile: harden parsing of old prink buffer
Philipp Rudo
prudo at redhat.com
Mon Mar 14 09:04:28 PDT 2022
Hi,
dumping the dmesg can cause an endless loop for the old prink mechanism (>
v3.5.0 and < v5.10.0) when the log_buf got corrupted. This series fixes those
cases by adding a cycle detection. The cycle detection is implemented in a
generic way so that it can be reused in other parts of makedumpfile.
Thanks
Philipp
v2:
* Rename 'idx' to 'ptr'
* Also print the non-loop part when a cycle was detected. Such a
situation can happen when log_buf wrapped around in the kernel
(log_first_idx != 0) and the corruption occurred on an
idx < log_first_idx.
* Add patch 4 fixing a bug independent from the memory corruption but
found while investigating it.
Philipp Rudo (4):
makedumpfile: add generic cycle detection
makedumpfile: use pointer arithmetics for dump_dmesg
makedumpfile: use cycle detection when parsing the prink log_buf
makedumpfile: print error when reading with unsupported compression
Makefile | 2 +-
detect_cycle.c | 99 +++++++++++++++++++++++++++++++++++++
detect_cycle.h | 40 +++++++++++++++
makedumpfile.c | 131 ++++++++++++++++++++++++++++++++++++++++---------
4 files changed, 247 insertions(+), 25 deletions(-)
create mode 100644 detect_cycle.c
create mode 100644 detect_cycle.h
--
2.35.1
More information about the kexec
mailing list