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