Hello community, here is the log from the commit of package crash for openSUSE:Factory checked in at 2018-07-06 10:42:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crash (Old) and /work/SRC/openSUSE:Factory/.crash.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash" Fri Jul 6 10:42:06 2018 rev:149 rq:620656 version:7.2.3 Changes: -------- --- /work/SRC/openSUSE:Factory/crash/crash.changes 2018-03-26 13:06:34.973754920 +0200 +++ /work/SRC/openSUSE:Factory/.crash.new/crash.changes 2018-07-06 10:42:11.531240707 +0200 @@ -1,0 +2,19 @@ +Wed Jul 4 19:26:40 UTC 2018 - ptesa...@suse.com + +- Added crash-fix-snprintf-overflow.patch + Fix to address a "__builtin___snprintf_chk" compiler warning. +- Added crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch + Update the recognition of x86_64 CPU_ENTRY_AREA. + +------------------------------------------------------------------- +Wed Jul 4 14:23:28 UTC 2018 - ptesa...@suse.com + +- Upgrade the source tarball to version to 7.2.3 + A complete changelog is available via the crash source page at: + + http://people.redhat.com/anderson/crash.changelog.html + +- Refreshed: + crash-compressed-booted-kernel.patch + +------------------------------------------------------------------- Old: ---- crash-7.2.1.tar.gz New: ---- crash-7.2.3.tar.gz crash-fix-snprintf-overflow.patch crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crash.spec ++++++ --- /var/tmp/diff_new_pack.JdRZge/_old 2018-07-06 10:42:12.743239265 +0200 +++ /var/tmp/diff_new_pack.JdRZge/_new 2018-07-06 10:42:12.743239265 +0200 @@ -56,7 +56,7 @@ Summary: Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles License: GPL-3.0-or-later AND GFDL-1.2-only Group: Development/Tools/Debuggers -Version: 7.2.1 +Version: 7.2.3 Release: 0 Source: %{name}-%{version}.tar.gz Source2: crash_whitepaper-%{whitepaper_version}.tar.bz2 @@ -84,6 +84,8 @@ Patch16: eppic-support-arm64.patch Patch18: %{name}-stop_read_error_when_intent_is_retry.patch Patch21: %{name}-allow-use-of-sadump-captured-KASLR-kernel.patch +Patch22: %{name}-fix-snprintf-overflow.patch +Patch23: %{name}-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch Patch90: %{name}-sial-ps-2.6.29.diff BuildRequires: bison BuildRequires: flex @@ -280,6 +282,8 @@ %patch13 -p1 %patch18 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 %if %{have_snappy} %patch15 -p1 %endif ++++++ crash-7.2.1.tar.gz -> crash-7.2.3.tar.gz ++++++ /work/SRC/openSUSE:Factory/crash/crash-7.2.1.tar.gz /work/SRC/openSUSE:Factory/.crash.new/crash-7.2.3.tar.gz differ: char 5, line 1 ++++++ crash-compressed-booted-kernel.patch ++++++ --- /var/tmp/diff_new_pack.JdRZge/_old 2018-07-06 10:42:12.791239207 +0200 +++ /var/tmp/diff_new_pack.JdRZge/_new 2018-07-06 10:42:12.795239203 +0200 @@ -11,7 +11,7 @@ --- a/filesys.c +++ b/filesys.c -@@ -571,6 +571,7 @@ static int +@@ -579,6 +579,7 @@ static int find_booted_kernel(void) { char kernel[BUFSIZE]; @@ -19,12 +19,12 @@ char buffer[BUFSIZE]; char **searchdirs; int i, preferred, wrapped; -@@ -620,16 +621,24 @@ find_booted_kernel(void) +@@ -628,16 +629,24 @@ find_booted_kernel(void) sprintf(kernel, "%s%s", searchdirs[i], dp->d_name); if (mount_point(kernel) || - !file_readable(kernel) || -- !is_elf_file(kernel)) +- !is_kernel(kernel)) + !file_readable(kernel)) continue; @@ -37,7 +37,7 @@ - found = match_file_string(kernel, kt->proc_version, buffer); - -+ if (!is_elf_file(real_kernel)) { ++ if (!is_kernel(real_kernel)) { + if (real_kernel != kernel) + free(real_kernel); + continue; @@ -48,7 +48,7 @@ if (found) break; } -@@ -649,10 +658,19 @@ find_booted_kernel(void) +@@ -657,10 +666,19 @@ find_booted_kernel(void) if (CRASHDEBUG(1)) fprintf(fp, "find_booted_kernel: found: %s\n", pc->namelist); ++++++ crash-fix-snprintf-overflow.patch ++++++ From: Dave Anderson <ander...@redhat.com> Date: Fri, 1 Jun 2018 14:01:01 -0400 Subject: Fix to address a "__builtin___snprintf_chk" compiler warning Upstream: merged Git-commit: 9446958fe211825ed5524317b05d5ea020bb00d6 Fix to address a "__builtin___snprintf_chk" compiler warning if bpf.c is compiled with -D_FORTIFY_SOURCE=2. (ander...@redhat.com) --- bpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/bpf.c +++ b/bpf.c @@ -362,7 +362,7 @@ do_bpf(ulong flags, ulong prog_id, ulong fprintf(fp, " LOAD_TIME: "); if (VALID_MEMBER(bpf_prog_aux_load_time)) { load_time = ULONGLONG(bpf->bpf_prog_aux_buf + OFFSET(bpf_prog_aux_load_time)); - print_boot_time(load_time, buf5, BUFSIZE); + print_boot_time(load_time, buf5, BUFSIZE/2); fprintf(fp, "%s\n", buf5); } else fprintf(fp, "(unknown)\n"); ++++++ crash-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch ++++++ From: Dave Anderson <ander...@redhat.com> Date: Fri, 1 Jun 2018 10:58:00 -0400 Subject: Update the recognition of x86_64 CPU_ENTRY_AREA Upstream: merged Git-commit: da49e2010b3cb88b4755d69d38fe90af6ba218b2 Update for the recognition of the new x86_64 CPU_ENTRY_AREA virtual address range introduced in Linux 4.15. The memory range exists above the vmemmap range and below the mapped kernel static text/data region, and where all of the x86_64 exception stacks have been moved. Without the patch, reads from the new memory region fail because the address range is not recognized as a legitimate virtual address. Most notable is the failure of "bt" on tasks whose backtraces originate from any of the exception stacks, which fail with the two error messages "bt: seek error: kernel virtual address: <address> type: stack contents" followed by "bt: read of stack at <address> failed". (ander...@redhat.com) --- defs.h | 5 +++++ x86_64.c | 47 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 12 deletions(-) --- a/defs.h +++ b/defs.h @@ -3392,6 +3392,9 @@ struct arm64_stackframe { #define VSYSCALL_START 0xffffffffff600000 #define VSYSCALL_END 0xffffffffff601000 +#define CPU_ENTRY_AREA_START 0xfffffe0000000000 +#define CPU_ENTRY_AREA_END 0xfffffe7fffffffff + #define PTOV(X) ((unsigned long)(X)+(machdep->kvbase)) #define VTOP(X) x86_64_VTOP((ulong)(X)) #define IS_VMALLOC_ADDR(X) x86_64_IS_VMALLOC_ADDR((ulong)(X)) @@ -5830,6 +5833,8 @@ struct machine_specific { ulong kpti_entry_stack; ulong kpti_entry_stack_size; ulong ptrs_per_pgd; + ulong cpu_entry_area_start; + ulong cpu_entry_area_end; }; #define KSYMS_START (0x1) --- a/x86_64.c +++ b/x86_64.c @@ -407,6 +407,11 @@ x86_64_init(int when) machdep->machspec->modules_end = MODULES_END_2_6_31; } } + if (STRUCT_EXISTS("cpu_entry_area")) { + machdep->machspec->cpu_entry_area_start = CPU_ENTRY_AREA_START; + machdep->machspec->cpu_entry_area_end = CPU_ENTRY_AREA_END; + } + STRUCT_SIZE_INIT(cpuinfo_x86, "cpuinfo_x86"); /* * Before 2.6.25 the structure was called gate_struct @@ -865,20 +870,21 @@ x86_64_dump_machdep_table(ulong arg) /* pml4 and upml is legacy for extension modules */ if (ms->pml4) { - fprintf(fp, " pml4: %lx\n", (ulong)ms->pml4); - fprintf(fp, " last_pml4_read: %lx\n", (ulong)ms->last_pml4_read); + fprintf(fp, " pml4: %lx\n", (ulong)ms->pml4); + fprintf(fp, " last_pml4_read: %lx\n", (ulong)ms->last_pml4_read); } else { - fprintf(fp, " pml4: (unused)\n"); - fprintf(fp, " last_pml4_read: (unused)\n"); + fprintf(fp, " pml4: (unused)\n"); + fprintf(fp, " last_pml4_read: (unused)\n"); } if (ms->upml) { - fprintf(fp, " upml: %lx\n", (ulong)ms->upml); - fprintf(fp, " last_upml_read: %lx\n", (ulong)ms->last_upml_read); + fprintf(fp, " upml: %lx\n", (ulong)ms->upml); + fprintf(fp, " last_upml_read: %lx\n", (ulong)ms->last_upml_read); } else { - fprintf(fp, " upml: (unused)\n"); - fprintf(fp, " last_upml_read: (unused)\n"); + fprintf(fp, " GART_end: %lx\n", ms->GART_end); + fprintf(fp, " upml: (unused)\n"); + fprintf(fp, " last_upml_read: (unused)\n"); } if (ms->p4d) { @@ -1002,10 +1008,14 @@ x86_64_dump_machdep_table(ulong arg) fprintf(fp, "\n "); fprintf(fp, "%016lx ", ms->stkinfo.ibase[c]); } - fprintf(fp, "\n kpti_entry_stack_size: %ld", ms->kpti_entry_stack_size); - fprintf(fp, "\n kpti_entry_stack: "); + fprintf(fp, "\n kpti_entry_stack_size: "); + if (ms->kpti_entry_stack_size) + fprintf(fp, "%ld", ms->kpti_entry_stack_size); + else + fprintf(fp, "(unused)"); + fprintf(fp, "\n kpti_entry_stack: "); if (machdep->flags & KPTI) { - fprintf(fp, "%lx\n ", ms->kpti_entry_stack); + fprintf(fp, "(percpu: %lx):\n ", ms->kpti_entry_stack); for (c = 0; c < cpus; c++) { if (c && !(c%4)) fprintf(fp, "\n "); @@ -1014,6 +1024,16 @@ x86_64_dump_machdep_table(ulong arg) fprintf(fp, "\n"); } else fprintf(fp, "(unused)\n"); + fprintf(fp, " cpu_entry_area_start: "); + if (ms->cpu_entry_area_start) + fprintf(fp, "%016lx\n", (ulong)ms->cpu_entry_area_start); + else + fprintf(fp, "(unused)\n"); + fprintf(fp, " cpu_entry_area_end: "); + if (ms->cpu_entry_area_end) + fprintf(fp, "%016lx\n", (ulong)ms->cpu_entry_area_end); + else + fprintf(fp, "(unused)\n"); } /* @@ -1572,7 +1592,10 @@ x86_64_IS_VMALLOC_ADDR(ulong vaddr) ((machdep->flags & VMEMMAP) && (vaddr >= VMEMMAP_VADDR && vaddr <= VMEMMAP_END)) || (vaddr >= MODULES_VADDR && vaddr <= MODULES_END) || - (vaddr >= VSYSCALL_START && vaddr < VSYSCALL_END)); + (vaddr >= VSYSCALL_START && vaddr < VSYSCALL_END) || + (machdep->machspec->cpu_entry_area_start && + vaddr >= machdep->machspec->cpu_entry_area_start && + vaddr <= machdep->machspec->cpu_entry_area_end)); } static int