From 076b839dd47b51530b708234db8f0bc3a49a38b0 Mon Sep 17 00:00:00 2001 From: Kazuhito Hagio Date: Fri, 2 Aug 2019 10:59:37 -0400 Subject: [PATCH] makedumpfile: Do not proceed when get_num_dumpable_cyclic() fails Backport from the makedumpfile devel branch in upstream. commit c1b834f80311706db2b5070cbccdcba3aacc90e5 Author: Kazuhito Hagio Date: Tue Jul 23 11:50:52 2019 -0400 [PATCH] Do not proceed when get_num_dumpable_cyclic() fails Currently, when get_num_dumpable_cyclic() fails and returns FALSE in create_dump_bitmap(), info->num_dumpable is set to 0 and makedumpfile proceeds to write a broken dumpfile slowly with incorrect progress indicator due to the value. It should not proceed when get_num_dumpable_cyclic() fails. Signed-off-by: Kazuhito Hagio Signed-off-by: Kazuhito Hagio Acked-by: Dave Young Acked-by: Kairui Song --- ...d-when-get_num_dumpable_cyclic-fails.patch | 44 +++++++++++++++++++ kexec-tools.spec | 2 + 2 files changed, 46 insertions(+) create mode 100644 kexec-tools-2.0.20-makedumpfile-Do-not-proceed-when-get_num_dumpable_cyclic-fails.patch diff --git a/kexec-tools-2.0.20-makedumpfile-Do-not-proceed-when-get_num_dumpable_cyclic-fails.patch b/kexec-tools-2.0.20-makedumpfile-Do-not-proceed-when-get_num_dumpable_cyclic-fails.patch new file mode 100644 index 0000000..4cbdfa1 --- /dev/null +++ b/kexec-tools-2.0.20-makedumpfile-Do-not-proceed-when-get_num_dumpable_cyclic-fails.patch @@ -0,0 +1,44 @@ +From c1b834f80311706db2b5070cbccdcba3aacc90e5 Mon Sep 17 00:00:00 2001 +From: Kazuhito Hagio +Date: Tue, 23 Jul 2019 11:50:52 -0400 +Subject: [PATCH 1/2] Do not proceed when get_num_dumpable_cyclic() fails + +Currently, when get_num_dumpable_cyclic() fails and returns FALSE in +create_dump_bitmap(), info->num_dumpable is set to 0 and makedumpfile +proceeds to write a broken dumpfile slowly with incorrect progress +indicator due to the value. + +It should not proceed when get_num_dumpable_cyclic() fails. + +Signed-off-by: Kazuhito Hagio +--- + makedumpfile.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/makedumpfile.c b/makedumpfile.c +index d76a4358a2b2..88df788fd6e7 100644 +--- a/makedumpfile-1.6.6/makedumpfile.c ++++ b/makedumpfile-1.6.6/makedumpfile.c +@@ -7344,7 +7344,8 @@ create_dump_bitmap(void) + if (!prepare_bitmap2_buffer()) + goto out; + +- info->num_dumpable = get_num_dumpable_cyclic(); ++ if (!(info->num_dumpable = get_num_dumpable_cyclic())) ++ goto out; + + if (!info->flag_elf_dumpfile) + free_bitmap2_buffer(); +@@ -7362,7 +7363,8 @@ create_dump_bitmap(void) + if (!create_2nd_bitmap(&cycle)) + goto out; + +- info->num_dumpable = get_num_dumpable_cyclic(); ++ if (!(info->num_dumpable = get_num_dumpable_cyclic())) ++ goto out; + } + + ret = TRUE; +-- +2.18.1 + diff --git a/kexec-tools.spec b/kexec-tools.spec index 0c82769..d4ab5a7 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -92,6 +92,7 @@ Patch0: kexec-tools-2.0.20-fix-broken-multiboot2-buliding-for-i386.patch # # Patches 601 onward are generic patches # +Patch601: kexec-tools-2.0.20-makedumpfile-Do-not-proceed-when-get_num_dumpable_cyclic-fails.patch %description kexec-tools provides /sbin/kexec binary that facilitates a new @@ -108,6 +109,7 @@ tar -z -x -v -f %{SOURCE9} tar -z -x -v -f %{SOURCE19} %patch0 -p1 +%patch601 -p1 %ifarch ppc %define archdef ARCH=ppc