Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:FrontRunner
crash.24895
0019-Add-kernel-version-dependent-check-for-get...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0019-Add-kernel-version-dependent-check-for-getting-lengt.patch of Package crash.24895
From b8e1f2735b8dd1303aeb2affa309a2a409a82d38 Mon Sep 17 00:00:00 2001 From: Tao Liu <ltao@redhat.com> Date: Mon, 26 Jul 2021 09:58:54 +0800 Subject: [PATCH] Add kernel version dependent check for getting length of log_end For kernels(>=2.4.9.11 [1] && <3.5 [2]), log_end was involved in the kernel sources. For kernels(>=2.6.25 [3]), log_end was defined as: static unsigned log_end; For kernels(<2.6.25), log_end was defined as: static unsigned long log_end; Previously, the length of log_end is determined by get_symbol_length, but it can be a regression when the returned length is 0 for some cases and value unchecked: crash> help -t ... help: invalid size request: 0 type: "log_end" To solve the above issue, let's add a kernel version dependent check to get its value appropriately when the length of the 'log_end' returns a value of zero. [1]: https://elixir.bootlin.com/linux/2.4.9.11/source/kernel/printk.c#L74 [2]: https://elixir.bootlin.com/linux/v3.5/source/kernel/printk.c [3]: https://elixir.bootlin.com/linux/v2.6.25/source/kernel/printk.c#L104 Signed-off-by: Tao Liu <ltao@redhat.com> --- kernel.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel.c b/kernel.c index a559f93..a8be7bb 100644 --- a/kernel.c +++ b/kernel.c @@ -5106,6 +5106,10 @@ dump_log(int msg_flags) if ((len = get_symbol_length("log_end")) == sizeof(int)) { get_symbol_data("log_end", len, &tmp); log_end = (ulong)tmp; + } else if (len == 0) { + THIS_KERNEL_VERSION >= LINUX(2,6,25) ? + get_symbol_data("log_end", sizeof(unsigned), &log_end) : + get_symbol_data("log_end", sizeof(unsigned long), &log_end); } else get_symbol_data("log_end", len, &log_end); -- 2.33.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor