Gcore extension module for the crash utility
Backport from the upstream crash-gcore.
commit 1ba701c1d7bd94cc5a02f51652712acdcbf0875c
Author: Vincent Whitchurch <vincent.whitchurch@axis.com>
Date: Tue Jun 21 09:15:33 2022 +0000
coredump: fix segmentation fault caused by type mismatch
crash gcore command on ARM sometimes results in segmentation fault:
crash> gcore -v 0
Segmentation fault (core dumped)
This is caused by type mismatch of a variable paddr in function
gcore_readmem_user() to hold a physical address, which is indicated by
the following warning message:
libgcore/gcore_coredump.c: In function ‘gcore_readmem_user’:
libgcore/gcore_coredump.c:85:26: warning: passing argument 2 of
‘uvtop_quiet’ from incompatible pointer type
[-Wincompatible-pointer-types]
if (!uvtop_quiet(addr, &paddr)) {
^~~~~~
libgcore/gcore_coredump.c:71:49: note: expected ‘physaddr_t *’ {aka
‘long long unsigned int *’} but argument is of type ‘ulong *’ {aka ‘long
unsigned int *’}
static int uvtop_quiet(ulong vaddr, physaddr_t *paddr);
~~~~~~~~~~~~^~~~~
On ARM, long unsigned int has 4 byte length, while physaddr_t has 8
byte length. The mismatch causes overwriting of stack variables.
Fix this by changing the type of the variable paddr to physaddr_t.
Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
Signed-off-by: HATAYAMA Daisuke <d.hatayama@fujitsu.com>
|
||
|---|---|---|
| .gitignore | ||
| crash-gcore-1.6.3-coredump-fix-segmentation-fault-caused-by-type-misma.patch | ||
| crash-gcore-1.6.3-coredump-use-MEMBER_-OFFSET-SIZE-instead-of-GCORE_-O.patch | ||
| crash-gcore-1.6.3-gcore-defs-remove-definitions-and-initializations-fo.patch | ||
| crash-gcore-1.6.3-gcore-fix-memory-allocation-failure-during-processin.patch | ||
| crash-gcore-1.6.3-x86-Fix-failure-of-collecting-vsyscall-mapping-due-t.patch | ||
| crash-gcore-command.spec | ||
| README.md | ||
| sources | ||
crash-gcore-command
The crash-gcore-command package