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)
commit6dacd79d28842ff01f18b4900d897741aac5999e
treedc906b5d9cbe14698ec602cff281db4a16019f46
parentab7ca09520e9c41c219a4427fe0dae24024bfe7f
kexec_file: fix elfcorehdr digest exclusion when CONFIG_CRASH_HOTPLUG=y

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