grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Add missing cast in compile-time byteswaps


From: Vladimir Serbinenko
Subject: [PATCH] Add missing cast in compile-time byteswaps
Date: Thu, 16 May 2024 22:22:58 +0300

Without them 0x80LL is 32-bit byte-swapped to 0xffffffff80000000 instead
of correct 0x80000000

Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
---
 include/grub/types.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/grub/types.h b/include/grub/types.h
index 064066e2e..45079bf65 100644
--- a/include/grub/types.h
+++ b/include/grub/types.h
@@ -196,8 +196,8 @@ static inline grub_uint16_t grub_swap_bytes16(grub_uint16_t 
_x)
    return (grub_uint16_t) ((_x << 8) | (_x >> 8));
 }
 
-#define grub_swap_bytes16_compile_time(x) ((((x) & 0xff) << 8) | (((x) & 
0xff00) >> 8))
-#define grub_swap_bytes32_compile_time(x) ((((x) & 0xff) << 24) | (((x) & 
0xff00) << 8) | (((x) & 0xff0000) >> 8) | (((x) & 0xff000000UL) >> 24))
+#define grub_swap_bytes16_compile_time(x) ((grub_uint16_t)((((x) & 0xff) << 8) 
| (((x) & 0xff00) >> 8)))
+#define grub_swap_bytes32_compile_time(x) ((grub_uint32_t)((((x) & 0xff) << 
24) | (((x) & 0xff00) << 8) | (((x) & 0xff0000) >> 8) | (((x) & 0xff000000UL) 
>> 24)))
 #define grub_swap_bytes64_compile_time(x)      \
 ({ \
    grub_uint64_t _x = (x); \
-- 
2.39.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]