Message ID | 20240307-elf2dmp-v4-0-4f324ad4d99d@daynix.com (mailing list archive) |
---|---|
Headers | show |
Series | contrib/elf2dmp: Improve robustness | expand |
> elf2dmp sometimes fails to work with partially corrupted dumps, and also > emits warnings when sanitizers are in use. This series are collections > of changes to improve the situation. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > --- > Changes in v4: > - Remove unnecessary !! idiom (Peter Maydell) > - Link to v3: https://lore.kernel.org/r/20240306-elf2dmp-v3-0-d74e6c3da49c@daynix.com > > Changes in v3: > - Split patch "contrib/elf2dmp: Conform to the error reporting pattern". > (Peter Maydell) > - Stated that the relevant value is little-endian in patch > "contrib/elf2dmp: Use lduw_le_p() to read PDB". > - Added a message saying "Build it only for little endian hosts until > they are fixed." for patch "contrib/elf2dmp: Build only for little > endian host". > - Added patch "contrib/elf2dmp: Ensure phdrs fit in file" to fix > https://gitlab.com/qemu-project/qemu/-/issues/2202 as patch > "contrib/elf2dmp: Clamp QEMU note to file size" was not really fixing > the crash. > - Link to v2: https://lore.kernel.org/r/20240305-elf2dmp-v2-0-86ff2163ad32@daynix.com > > Changes in v2: > - Added patch "contrib/elf2dmp: Remove unnecessary err flags". > - Added patch "contrib/elf2dmp: Assume error by default". > - Added patch "contrib/elf2dmp: Conform to the error reporting pattern". > - Added patch "contrib/elf2dmp: Build only for little endian host". > - Added patch "contrib/elf2dmp: Use GPtrArray". > - Added patch "contrib/elf2dmp: Clamp QEMU note to file size". > - Changed error handling in patch "contrib/elf2dmp: Ensure segment fits > in file" (Peter Maydell) > - Added a comment to fill_context() that it continues on failure. > (Peter Maydell) > - Link to v1: https://lore.kernel.org/r/20240303-elf2dmp-v1-0-bea6649fe3e6@daynix.com > > --- > Akihiko Odaki (19): > contrib/elf2dmp: Remove unnecessary err flags > contrib/elf2dmp: Assume error by default > contrib/elf2dmp: Continue even contexts are lacking > contrib/elf2dmp: Change pa_space_create() signature > contrib/elf2dmp: Fix error reporting style in addrspace.c > contrib/elf2dmp: Fix error reporting style in download.c > contrib/elf2dmp: Fix error reporting style in pdb.c > contrib/elf2dmp: Fix error reporting style in qemu_elf.c > contrib/elf2dmp: Fix error reporting style in main.c > contrib/elf2dmp: Always check for PA resolution failure > contrib/elf2dmp: Always destroy PA space > contrib/elf2dmp: Ensure segment fits in file > contrib/elf2dmp: Use lduw_le_p() to read PDB > contrib/elf2dmp: Use rol64() to decode > MAINTAINERS: Add Akihiko Odaki as a elf2dmp reviewer > contrib/elf2dmp: Build only for little endian host > contrib/elf2dmp: Use GPtrArray > contrib/elf2dmp: Clamp QEMU note to file size > contrib/elf2dmp: Ensure phdrs fit in file > > MAINTAINERS | 1 + > contrib/elf2dmp/addrspace.h | 6 +- > contrib/elf2dmp/download.h | 2 +- > contrib/elf2dmp/pdb.h | 2 +- > contrib/elf2dmp/qemu_elf.h | 2 +- > contrib/elf2dmp/addrspace.c | 63 ++++++++++------- > contrib/elf2dmp/download.c | 12 ++-- > contrib/elf2dmp/main.c | 168 ++++++++++++++++++++------------------------ > contrib/elf2dmp/pdb.c | 61 +++++++--------- > contrib/elf2dmp/qemu_elf.c | 150 ++++++++++++++++++++++----------------- > contrib/elf2dmp/meson.build | 2 +- > 11 files changed, 238 insertions(+), 231 deletions(-) > --- > base-commit: bfe8020c814a30479a4241aaa78b63960655962b > change-id: 20240301-elf2dmp-1a6a551f8663 > > Best regards, > > -- > Akihiko Odaki <akihiko.odaki@daynix.com> Hi, I've tested the series with Windows Server 2022 Standard (Build 20348), 4GiB, 4 vCPUs. Tested-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
On Thu, 7 Mar 2024 at 10:20, Akihiko Odaki <akihiko.odaki@daynix.com> wrote: > > elf2dmp sometimes fails to work with partially corrupted dumps, and also > emits warnings when sanitizers are in use. This series are collections > of changes to improve the situation. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > --- Thanks for this -- I've taken it via target-arm.next since I want to make another pullreq for softfreeze anyway. I didn't take the "Build only for little endian host" patch. I thought about it, and decided that on balance it was probably best not to: in practice we haven't had anybody say "I tried to run this on a BE host and it didn't work" (unsurprising, most users especially of Windows VMs will be on LE hosts), and if we do stop building it for BE this seems like it might well create work for downstream distros who might have to make their package creation deal with "this binary doesn't get built on these hosts" (and then remove that handling again in future if we ever fix the endianness bugs). thanks -- PMM
elf2dmp sometimes fails to work with partially corrupted dumps, and also emits warnings when sanitizers are in use. This series are collections of changes to improve the situation. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- Changes in v4: - Remove unnecessary !! idiom (Peter Maydell) - Link to v3: https://lore.kernel.org/r/20240306-elf2dmp-v3-0-d74e6c3da49c@daynix.com Changes in v3: - Split patch "contrib/elf2dmp: Conform to the error reporting pattern". (Peter Maydell) - Stated that the relevant value is little-endian in patch "contrib/elf2dmp: Use lduw_le_p() to read PDB". - Added a message saying "Build it only for little endian hosts until they are fixed." for patch "contrib/elf2dmp: Build only for little endian host". - Added patch "contrib/elf2dmp: Ensure phdrs fit in file" to fix https://gitlab.com/qemu-project/qemu/-/issues/2202 as patch "contrib/elf2dmp: Clamp QEMU note to file size" was not really fixing the crash. - Link to v2: https://lore.kernel.org/r/20240305-elf2dmp-v2-0-86ff2163ad32@daynix.com Changes in v2: - Added patch "contrib/elf2dmp: Remove unnecessary err flags". - Added patch "contrib/elf2dmp: Assume error by default". - Added patch "contrib/elf2dmp: Conform to the error reporting pattern". - Added patch "contrib/elf2dmp: Build only for little endian host". - Added patch "contrib/elf2dmp: Use GPtrArray". - Added patch "contrib/elf2dmp: Clamp QEMU note to file size". - Changed error handling in patch "contrib/elf2dmp: Ensure segment fits in file" (Peter Maydell) - Added a comment to fill_context() that it continues on failure. (Peter Maydell) - Link to v1: https://lore.kernel.org/r/20240303-elf2dmp-v1-0-bea6649fe3e6@daynix.com --- Akihiko Odaki (19): contrib/elf2dmp: Remove unnecessary err flags contrib/elf2dmp: Assume error by default contrib/elf2dmp: Continue even contexts are lacking contrib/elf2dmp: Change pa_space_create() signature contrib/elf2dmp: Fix error reporting style in addrspace.c contrib/elf2dmp: Fix error reporting style in download.c contrib/elf2dmp: Fix error reporting style in pdb.c contrib/elf2dmp: Fix error reporting style in qemu_elf.c contrib/elf2dmp: Fix error reporting style in main.c contrib/elf2dmp: Always check for PA resolution failure contrib/elf2dmp: Always destroy PA space contrib/elf2dmp: Ensure segment fits in file contrib/elf2dmp: Use lduw_le_p() to read PDB contrib/elf2dmp: Use rol64() to decode MAINTAINERS: Add Akihiko Odaki as a elf2dmp reviewer contrib/elf2dmp: Build only for little endian host contrib/elf2dmp: Use GPtrArray contrib/elf2dmp: Clamp QEMU note to file size contrib/elf2dmp: Ensure phdrs fit in file MAINTAINERS | 1 + contrib/elf2dmp/addrspace.h | 6 +- contrib/elf2dmp/download.h | 2 +- contrib/elf2dmp/pdb.h | 2 +- contrib/elf2dmp/qemu_elf.h | 2 +- contrib/elf2dmp/addrspace.c | 63 ++++++++++------- contrib/elf2dmp/download.c | 12 ++-- contrib/elf2dmp/main.c | 168 ++++++++++++++++++++------------------------ contrib/elf2dmp/pdb.c | 61 +++++++--------- contrib/elf2dmp/qemu_elf.c | 150 ++++++++++++++++++++++----------------- contrib/elf2dmp/meson.build | 2 +- 11 files changed, 238 insertions(+), 231 deletions(-) --- base-commit: bfe8020c814a30479a4241aaa78b63960655962b change-id: 20240301-elf2dmp-1a6a551f8663 Best regards,