usbutils/0001-Fix-an-runtime-error-reported-by-undefind-sanitizer.patch
lihaoxiang 240debafb5 fix an runtime error reported by undefined sanitizer
(cherry picked from commit cb3de5ba8df8d647854d7dbc9b4635d14cfede72)
2022-11-01 14:27:14 +08:00

31 lines
886 B
Diff

From 96d775860fb7e404d6acaf7e8dfbd171cfbcee15 Mon Sep 17 00:00:00 2001
From: Han Han <hhan@redhat.com>
Date: Mon, 20 Jun 2022 16:45:19 +0800
Subject: [PATCH] Fix an runtime error reported by undefind sanitizer
Fix the following error when compiling with undefined sanitizer:
./lsusb
names.c:36:29: runtime error: left shift of 16 by 27 places cannot be represented in type 'int'
Signed-off-by: Han Han <hhan@redhat.com>
---
names.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/names.c b/names.c
index c8cdd02..beae8f8 100644
--- a/names.c
+++ b/names.c
@@ -33,7 +33,7 @@
static unsigned int hashnum(unsigned int num)
{
- unsigned int mask1 = HASH1 << 27, mask2 = HASH2 << 27;
+ unsigned int mask1 = (unsigned int)HASH1 << 27, mask2 = (unsigned int)HASH2 << 27;
for (; mask1 >= HASH1; mask1 >>= 1, mask2 >>= 1)
if (num & mask1)
--
2.37.0.windows.1