[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/20] contrib/elf2dmp: Use rol64() to decode
From: |
Peter Maydell |
Subject: |
[PULL 15/20] contrib/elf2dmp: Use rol64() to decode |
Date: |
Mon, 11 Mar 2024 19:12:36 +0000 |
From: Akihiko Odaki <akihiko.odaki@daynix.com>
rol64() is roubust against too large shift values and fixes UBSan
warnings.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20240307-elf2dmp-v4-14-4f324ad4d99d@daynix.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
contrib/elf2dmp/main.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c
index 32dc8bac6a3..d046a72ae67 100644
--- a/contrib/elf2dmp/main.c
+++ b/contrib/elf2dmp/main.c
@@ -6,6 +6,7 @@
*/
#include "qemu/osdep.h"
+#include "qemu/bitops.h"
#include "err.h"
#include "addrspace.h"
@@ -47,11 +48,6 @@ static const uint64_t SharedUserData = 0xfffff78000000000;
s ? printf(#s" = 0x%016"PRIx64"\n", s) :\
eprintf("Failed to resolve "#s"\n"), s)
-static uint64_t rol(uint64_t x, uint64_t y)
-{
- return (x << y) | (x >> (64 - y));
-}
-
/*
* Decoding algorithm can be found in Volatility project
*/
@@ -64,7 +60,7 @@ static void kdbg_decode(uint64_t *dst, uint64_t *src, size_t
size,
uint64_t block;
block = src[i];
- block = rol(block ^ kwn, (uint8_t)kwn);
+ block = rol64(block ^ kwn, kwn);
block = __builtin_bswap64(block ^ kdbe) ^ kwa;
dst[i] = block;
}
--
2.34.1
- [PULL 01/20] hw/i2c: Implement Broadcom Serial Controller (BSC), (continued)
- [PULL 01/20] hw/i2c: Implement Broadcom Serial Controller (BSC), Peter Maydell, 2024/03/05
- [PULL 11/20] hw/arm/stm32l4x5_soc.c: Use the RCC Sysclk, Peter Maydell, 2024/03/05
- [PULL 05/20] hw/misc/stm32l4x5_rcc: Implement STM32L4x5_RCC skeleton, Peter Maydell, 2024/03/05
- [PULL 04/20] hw/char/pl011: Add support for loopback, Peter Maydell, 2024/03/05
- [PULL 18/20] target/arm: Do memory type alignment check when translation enabled, Peter Maydell, 2024/03/05
- [PULL 13/20] target/arm: Support 32-byte alignment in pow2_align, Peter Maydell, 2024/03/05
- Re: [PULL 00/20] target-arm queue, Peter Maydell, 2024/03/05
- [PULL 00/20] target-arm queue, Peter Maydell, 2024/03/11
- [PULL 03/20] contrib/elf2dmp: Assume error by default, Peter Maydell, 2024/03/11
- [PULL 08/20] contrib/elf2dmp: Fix error reporting style in pdb.c, Peter Maydell, 2024/03/11
- [PULL 15/20] contrib/elf2dmp: Use rol64() to decode,
Peter Maydell <=
- [PULL 12/20] contrib/elf2dmp: Always destroy PA space, Peter Maydell, 2024/03/11
- [PULL 18/20] contrib/elf2dmp: Clamp QEMU note to file size, Peter Maydell, 2024/03/11
- [PULL 11/20] contrib/elf2dmp: Always check for PA resolution failure, Peter Maydell, 2024/03/11
- [PULL 20/20] docs: update copyright date to the year 2024, Peter Maydell, 2024/03/11
- [PULL 01/20] hw/arm: Deprecate various old Arm machine types, Peter Maydell, 2024/03/11
- [PULL 07/20] contrib/elf2dmp: Fix error reporting style in download.c, Peter Maydell, 2024/03/11
- [PULL 04/20] contrib/elf2dmp: Continue even contexts are lacking, Peter Maydell, 2024/03/11
- [PULL 02/20] contrib/elf2dmp: Remove unnecessary err flags, Peter Maydell, 2024/03/11
- [PULL 14/20] contrib/elf2dmp: Use lduw_le_p() to read PDB, Peter Maydell, 2024/03/11
- [PULL 13/20] contrib/elf2dmp: Ensure segment fits in file, Peter Maydell, 2024/03/11