]> www.infradead.org Git - users/willy/xarray.git/commitdiff
kexec_file: fix elfcorehdr digest exclusion when CONFIG_CRASH_HOTPLUG=y
authorPetr Tesarik <ptesarik@suse.com>
Mon, 5 Aug 2024 15:07:50 +0000 (17:07 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 2 Sep 2024 00:59:01 +0000 (17:59 -0700)
Fix the condition to exclude the elfcorehdr segment from the SHA digest
calculation.

The j iterator is an index into the output sha_regions[] array, not into
the input image->segment[] array.  Once it reaches
image->elfcorehdr_index, all subsequent segments are excluded.  Besides,
if the purgatory segment precedes the elfcorehdr segment, the elfcorehdr
may be wrongly included in the calculation.

Link: https://lkml.kernel.org/r/20240805150750.170739-1-petr.tesarik@suse.com
Fixes: f7cc804a9fd4 ("kexec: exclude elfcorehdr from the segment digest")
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
Acked-by: Baoquan He <bhe@redhat.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Hari Bathini <hbathini@linux.ibm.com>
Cc: Sourabh Jain <sourabhjain@linux.ibm.com>
Cc: Eric DeVolder <eric_devolder@yahoo.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/kexec_file.c

index 3d64290d24c9a2158c257b3bfa8bc2b3dd68606c..3eedb8c226ad8f6a7cfad127dbe12019394d126e 100644 (file)
@@ -752,7 +752,7 @@ static int kexec_calculate_store_digests(struct kimage *image)
 
 #ifdef CONFIG_CRASH_HOTPLUG
                /* Exclude elfcorehdr segment to allow future changes via hotplug */
-               if (j == image->elfcorehdr_index)
+               if (i == image->elfcorehdr_index)
                        continue;
 #endif