Alexander Egorenkov
f15e32cdb1
zdump/dfi: Fix illegal memory access in dfi_cpu_add_from_lc()
...
Check that a CPU's lowcore address falls within a valid memory region
before accessing it. This prevents potential illegal memory accesses
in case a dump contains invalid CPU lowcore addresses.
This bug was found with AFL fuzzing and ASAN.
Starting program: /root/s390-tools/zdump/zgetdump -iVVVVV /root/zgetdump-fuzzing/findings/crashes/id:000004,sig:06,src:000005,op:flip32,pos:3055
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
TRACE: DFI initialization
DEBUG: DFI trying s390tape
DEBUG: DFI s390tape returned with rc -19
DEBUG: DFI trying devmem
DEBUG: DFI devmem returned with rc -19
DEBUG: DFI trying s390mv_ext
DEBUG: DFI s390mv_ext returned with rc -19
DEBUG: DFI trying s390mv
DEBUG: DFI s390mv returned with rc -19
DEBUG: DFI trying s390_ext
DEBUG: DFI S390 extended initialization
DEBUG: DFI s390_ext returned with rc -19
DEBUG: DFI trying s390
DEBUG: DFI S390 initialization
INFO: DFI S390 version 5
DEBUG: DFI S390 mem_size 0x00000000000dbba0
DEBUG: DFI add vol mem chunk start 0x0000000000000000 size 0x00000000000dbba0 volnr 0
[snip]
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x0000000000000000 size 0x0000000000002000
TRACE: DFI virt mem read addr 0x00000000000000ff size 0x0000000000002000
TRACE: DFI virt mem read addr 0x00000000ffffff00 size 0x0000000000002000
Program received signal SIGSEGV, Segmentation fault.
0x000000000100fbb0 in mem_read (cnt=<optimized out>, buf=0x3ffffffc7d0, addr=4294967040, mem=0x104b218 <l+152>) at dfi.c:339
339 size = MIN(cnt - copied, mem_chunk->end - addr + 1);
Missing separate debuginfos, use: dnf debuginfo-install fuse-libs-2.9.9-11.fc34.s390x glibc-2.33-20.1.ibm.fc34.s390x libasan-11.0.1-0.3.1.ibm.fc34.s390x libgcc-11.0.1-0.3.1.ibm.fc34.s390x libstdc++-11.0.1-0.3.1.ibm.fc34.s390x zlib-1.2.11-26.fc34.s390x
(gdb) bt
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2021-10-01 14:59:56 +02:00
Philipp Rudo
244bf4e550
zdump: Make use of __packed macro
...
Make use of the pre-defined __packed macro throughout zdump.
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com >
Reviewed-by: Stefan Haberland <sth@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2019-12-12 18:04:32 +01:00
Mikhail Zaslonko
4a223c70f2
zgetdump: Update zgetdump to process the new dump format
...
Update zgetdump tool to process dumps of the new s390 extended format.
Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2018-05-07 13:42:03 +02:00
Mikhail Zaslonko
26d636f234
zgetdump: Update zgetdump to process the new dump tool
...
Update 'zgetdump -d' to process the new DASD dump tool installed (single
volume or multi-volume).
Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2018-05-07 13:42:03 +02:00
Mikhail Zaslonko
aade05b01d
zgetdump: Update s390 dump common functions
...
Update df_s390_dumper structure and dumper reading functions to read
certain dumper fields instead of the entire dump tool.
Update other s390 dump common functions in preparation for the new dumper
and the new s390 extended dump format.
Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2018-05-07 13:42:03 +02:00
Mikhail Zaslonko
37c3752b31
zgetdump: Remove unused function prototype
...
Signed-off-by: Mikhail Zaslonko <zaslonko@linux.vnet.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2018-05-07 13:42:03 +02:00
Michael Holzheu
b627b8d8e1
Initial s390-tools-2.0.0 import
...
This commit is based on the s390-tools-1.39.0 version.
Changes on top of s390-tools-1.39.0:
- Add MIT license to all source files
- Add LICENSE file
- Transform REAMDE to README.md (markdown)
- Add AUTHORS.md file
- Add CONTRIBUTING.md file
- Move changelog from README to CHANGELOG.md file
Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com >
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com >
2017-08-21 10:55:40 +02:00