Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package crash for openSUSE:Factory checked in at 2023-09-25 20:01:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crash (Old) and /work/SRC/openSUSE:Factory/.crash.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash" Mon Sep 25 20:01:59 2023 rev:190 rq:1113049 version:8.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/crash/crash.changes 2023-09-21 22:20:47.891966139 +0200 +++ /work/SRC/openSUSE:Factory/.crash.new.1770/crash.changes 2023-09-25 20:03:11.298128295 +0200 @@ -1,0 +2,31 @@ +Wed Sep 20 16:58:00 UTC 2023 - David Mair <dm...@suse.com> + +- On initialization crash verifies the core based on the text + referenced by the linux_banner symbol in the supplied core. It + chooses how to get the address of the text based on the symbol + type decoded with gdb. For some compressed kernels with an + accessible debuginfo file the type is not supported (bss segment + found, data reference expected) but the symbol and it's value are + valid. This causes the linux_banner text to be used as the + "address" of the linux_banner and that's an invalid address for + the coredump causing crash to fail to load reporting something + like: + + WARNING: invalid linux_banner pointer: 65762078756e694c + + where the address is obviously ASCII text used as a number. A + SUSE patch to support compressed kernel binaries introduces the + behavior, it does not happen for upstream crash source as-is. The + difference is whether the symbol details are obtained from the + kernel binary or debuginfo (fails for some debuginfos). + + * crash-get-linux_banner-without-using-syment-type.patch + In verify_version(), choose how to obtain the linux_banner address + based on the result of get_symbol_type() instead. TYPE_CODE_ARRAY + causes the value of the symbol obtained from gdb to be used. + TYPE_CODE_PTR causes the sybol data to be read to get the address. + Default is unrecognized type but a warning is shown and the value + obtained from gdb used as a best case choice. + (bsc#1190434 c#24) + +------------------------------------------------------------------- New: ---- crash-get-linux_banner-without-using-syment-type.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crash.spec ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:14.822255349 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:14.826255494 +0200 @@ -85,6 +85,7 @@ Patch9: %{name}-debuginfo-compressed.patch Patch10: %{name}_enable_lzo_support.patch Patch11: %{name}-compressed-booted-kernel.patch +Patch12: %{name}-get-linux_banner-without-using-syment-type.patch Patch13: %{name}-patch-gdb.patch Patch15: %{name}_enable_snappy_support.patch Patch18: %{name}-stop_read_error_when_intent_is_retry.patch @@ -237,6 +238,7 @@ %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 %patch13 -p1 %patch18 -p1 %patch21 -p1 ++++++ crash-allow-use-of-sadump-captured-KASLR-kernel.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:14.890257801 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:14.894257945 +0200 @@ -26,7 +26,7 @@ =================================================================== --- a/symbols.c +++ b/symbols.c -@@ -1156,6 +1156,9 @@ symname_hash_install(struct syment *spn) +@@ -1173,6 +1173,9 @@ symname_hash_install(struct syment *spn) } } } ++++++ crash-compressed-booted-kernel.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:14.906258378 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:14.910258522 +0200 @@ -9,11 +9,11 @@ filesys.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) -Index: crash-7.2.7/filesys.c +Index: b/filesys.c =================================================================== ---- crash-7.2.7.orig/filesys.c -+++ crash-7.2.7/filesys.c -@@ -581,6 +581,7 @@ static int +--- a/filesys.c ++++ b/filesys.c +@@ -588,6 +588,7 @@ static int find_booted_kernel(void) { char kernel[BUFSIZE]; @@ -21,7 +21,7 @@ char buffer[BUFSIZE]; char **searchdirs; int i, preferred, wrapped; -@@ -630,16 +631,24 @@ find_booted_kernel(void) +@@ -637,16 +638,24 @@ find_booted_kernel(void) sprintf(kernel, "%s%s", searchdirs[i], dp->d_name); if (mount_point(kernel) || @@ -50,7 +50,7 @@ if (found) break; } -@@ -659,10 +668,19 @@ find_booted_kernel(void) +@@ -666,10 +675,19 @@ find_booted_kernel(void) if (CRASHDEBUG(1)) fprintf(fp, "find_booted_kernel: found: %s\n", pc->namelist); ++++++ crash-debuginfo-compressed.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:14.922258954 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:14.926259099 +0200 @@ -12,11 +12,11 @@ symbols.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) -Index: crash-7.2.7/symbols.c +Index: b/symbols.c =================================================================== ---- crash-7.2.7.orig/symbols.c -+++ crash-7.2.7/symbols.c -@@ -203,9 +203,9 @@ symtab_init(void) +--- a/symbols.c ++++ b/symbols.c +@@ -204,9 +204,9 @@ symtab_init(void) * Pull a bait-and-switch on st->bfd if we've got a separate * .gnu_debuglink file that matches the CRC. Not done for kerntypes. */ @@ -29,7 +29,7 @@ no_debugging_data(FATAL); } -@@ -267,13 +267,16 @@ check_gnu_debuglink(bfd *bfd) +@@ -268,13 +268,16 @@ check_gnu_debuglink(bfd *bfd) char *contents; int crc_offset; unsigned long crc32; @@ -47,7 +47,7 @@ return FALSE; } -@@ -294,14 +297,14 @@ check_gnu_debuglink(bfd *bfd) +@@ -295,14 +298,14 @@ check_gnu_debuglink(bfd *bfd) contents, crc32); if ((pc->debuginfo_file = (char *) ++++++ crash-get-linux_banner-without-using-syment-type.patch ++++++ Index: b/kernel.c =================================================================== --- a/kernel.c +++ b/kernel.c @@ -1067,13 +1067,21 @@ verify_version(void) if (!(sp = symbol_search("linux_banner"))) error(FATAL, "linux_banner symbol does not exist?\n"); - else if ((sp->type == 'R') || (sp->type == 'r') || - (THIS_KERNEL_VERSION >= LINUX(2,6,11) && (sp->type == 'D' || sp->type == 'd')) || - (machine_type("ARM") && sp->type == 'T') || - (machine_type("ARM64"))) - linux_banner = symbol_value("linux_banner"); - else - get_symbol_data("linux_banner", sizeof(ulong), &linux_banner); + else { + switch (get_symbol_type("linux_banner", NULL, NULL)) + { + case TYPE_CODE_ARRAY: + linux_banner = sp->value; + break; + case TYPE_CODE_PTR: + get_symbol_data("linux_banner", sizeof(ulong), &linux_banner); + break; + default: + error(WARNING, "linux_banner is unknown type\n"); + linux_banner = sp->value; + break; + } + } if (!IS_KVADDR(linux_banner)) error(WARNING, "invalid linux_banner pointer: %lx\n", ++++++ crash-make-emacs-default.diff ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:14.978260973 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:14.982261118 +0200 @@ -2,11 +2,11 @@ main.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) -Index: crash-7.2.7/main.c +Index: b/main.c =================================================================== ---- crash-7.2.7.orig/main.c -+++ crash-7.2.7/main.c -@@ -1169,12 +1169,6 @@ setup_environment(int argc, char **argv) +--- a/main.c ++++ b/main.c +@@ -1182,12 +1182,6 @@ setup_environment(int argc, char **argv) pc->flags |= READLINE; pc->editing_mode = "no_mode"; @@ -19,7 +19,7 @@ /* * Resolve $HOME .rc file first, then the one in the local directory. -@@ -1224,7 +1218,7 @@ setup_environment(int argc, char **argv) +@@ -1237,7 +1231,7 @@ setup_environment(int argc, char **argv) } if (STREQ(pc->editing_mode, "no_mode")) ++++++ crash-patch-gdb.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:14.994261550 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:14.998261695 +0200 @@ -14,9 +14,11 @@ Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) +Index: b/Makefile +=================================================================== --- a/Makefile +++ b/Makefile -@@ -263,6 +263,11 @@ gdb_unzip: +@@ -293,6 +293,11 @@ gdb_unzip: gdb_patch: if [ -f ${GDB}.patch ] && [ -s ${GDB}.patch ]; then \ patch -p0 < ${GDB}.patch; cp ${GDB}.patch ${GDB}; fi ++++++ crash-sles9-time.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:15.026262704 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:15.030262848 +0200 @@ -18,7 +18,7 @@ =================================================================== --- a/defs.h +++ b/defs.h -@@ -741,6 +741,7 @@ struct kernel_table { +@@ -764,6 +764,7 @@ struct kernel_table { ulong p2m_missing; } pvops_xen; int highest_irq; @@ -26,7 +26,7 @@ #define IKCONFIG_AVAIL 0x1 /* kernel contains ikconfig data */ #define IKCONFIG_LOADED 0x2 /* ikconfig data is currently loaded */ int ikconfig_flags; -@@ -6888,6 +6889,13 @@ extern struct lkcd_environment *lkcd; +@@ -7589,6 +7590,13 @@ extern struct lkcd_environment *lkcd; #endif /* LKCD_COMMON */ @@ -44,7 +44,7 @@ =================================================================== --- a/kernel.c +++ b/kernel.c -@@ -297,6 +297,12 @@ kernel_init() +@@ -304,6 +304,12 @@ kernel_init() verify_version(); @@ -57,7 +57,7 @@ if (symbol_exists("__per_cpu_offset")) { if (LKCD_KERNTYPES()) i = get_cpus_possible(); -@@ -5617,7 +5623,7 @@ get_uptime(char *buf, ulonglong *j64p) +@@ -5793,7 +5799,7 @@ get_uptime(char *buf, ulonglong *j64p) if (symbol_exists("jiffies_64")) { get_symbol_data("jiffies_64", sizeof(ulonglong), &jiffies_64); @@ -66,7 +66,7 @@ wrapped = (jiffies_64 & 0xffffffff00000000ULL); if (wrapped) { wrapped -= 0x100000000ULL; -@@ -6213,6 +6219,7 @@ no_cpu_flags: +@@ -6391,6 +6397,7 @@ no_cpu_flags: fprintf(fp, " p2m_mid_missing: %lx\n", kt->pvops_xen.p2m_mid_missing); fprintf(fp, " p2m_missing: %lx\n", kt->pvops_xen.p2m_missing); } @@ -78,7 +78,7 @@ =================================================================== --- a/task.c +++ b/task.c -@@ -4631,6 +4631,12 @@ start_time_timespec(void) +@@ -4678,6 +4678,12 @@ start_time_timespec(void) default: break; } @@ -91,7 +91,7 @@ tt->flags |= NO_TIMESPEC; -@@ -4667,6 +4673,11 @@ convert_start_time(ulonglong start_time, +@@ -4701,6 +4707,11 @@ convert_start_time(ulonglong start_time, ulong tmp1, tmp2; ulonglong wrapped; ++++++ crash-stop_read_error_when_intent_is_retry.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:15.042263281 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:15.046263425 +0200 @@ -10,11 +10,11 @@ --- -Index: crash-7.2.8/memory.c +Index: b/memory.c =================================================================== ---- crash-7.2.8.orig/memory.c -+++ crash-7.2.8/memory.c -@@ -2320,8 +2320,6 @@ readmem(ulonglong addr, int memtype, voi +--- a/memory.c ++++ b/memory.c +@@ -2423,8 +2423,6 @@ readmem(ulonglong addr, int memtype, voi goto readmem_error; case READ_ERROR: @@ -23,7 +23,7 @@ if ((pc->flags & DEVMEM) && (kt->flags & PRE_KERNEL_INIT) && !(error_handle & NO_DEVMEM_SWITCH) && devmem_is_restricted() && switch_to_proc_kcore()) { -@@ -2329,6 +2327,8 @@ readmem(ulonglong addr, int memtype, voi +@@ -2432,6 +2430,8 @@ readmem(ulonglong addr, int memtype, voi return(readmem(addr, memtype, bufptr, size, type, error_handle)); } ++++++ crash-usrmerge.patch ++++++ --- /var/tmp/diff_new_pack.7mytZf/_old 2023-09-25 20:03:15.058263857 +0200 +++ /var/tmp/diff_new_pack.7mytZf/_new 2023-09-25 20:03:15.062264002 +0200 @@ -9,9 +9,11 @@ symbols.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) +Index: b/defs.h +=================================================================== --- a/defs.h +++ b/defs.h -@@ -406,7 +406,7 @@ struct number_option { +@@ -413,7 +413,7 @@ struct number_option { #define PIPE_OPTIONS (FROM_COMMAND_LINE | FROM_INPUT_FILE | REDIRECT_TO_PIPE | \ REDIRECT_TO_STDPIPE | REDIRECT_TO_FILE) @@ -20,9 +22,11 @@ #define MEMORY_DRIVER_MODULE "crash" #define MEMORY_DRIVER_DEVICE "/dev/crash" +Index: b/help.c +=================================================================== --- a/help.c +++ b/help.c -@@ -9445,7 +9445,7 @@ README_ENTER_DIRECTORY, +@@ -9649,7 +9649,7 @@ README_ENTER_DIRECTORY, README_MEMORY_DRIVER, "", " If the kernel file is stored in /boot, /, /boot/efi, or in any /usr/src", @@ -31,6 +35,8 @@ " are required -- the first kernel found that matches /proc/version will be", " used as the namelist.", " ", +Index: b/symbols.c +=================================================================== --- a/symbols.c +++ b/symbols.c @@ -299,7 +299,7 @@ check_gnu_debuglink(bfd *bfd)