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)

Reply via email to