Blame SOURCES/0021-usb-backend-create_emulated_device-assert-address-32.patch

7492b2
From 35f6926328cd415f6ba24efe49c3f990e44a8948 Mon Sep 17 00:00:00 2001
7492b2
From: Uri Lublin <uril@redhat.com>
7492b2
Date: Sun, 22 Nov 2020 16:21:00 +0200
7492b2
Subject: [PATCH 21/22] usb-backend: create_emulated_device: assert address <
7492b2
 32
7492b2
7492b2
This may fix the following static analyzer issue:
7492b2
  src/usb-backend.c:1507: large_shift: In expression "1 << address", left
7492b2
  shifting by more than 31 bits has undefined behavior.
7492b2
  The shift amount, "address", is 32.
7492b2
7492b2
Signed-off-by: Uri Lublin <uril@redhat.com>
7492b2
---
7492b2
 src/usb-backend.c | 3 +++
7492b2
 1 file changed, 3 insertions(+)
7492b2
7492b2
diff --git a/src/usb-backend.c b/src/usb-backend.c
7492b2
index 857488e..c76d576 100644
7492b2
--- a/src/usb-backend.c
7492b2
+++ b/src/usb-backend.c
7492b2
@@ -1482,6 +1482,9 @@ spice_usb_backend_create_emulated_device(SpiceUsbBackend *be,
7492b2
         }
7492b2
     }
7492b2
 
7492b2
+    // for static analyzers: it is already checked above
7492b2
+    g_assert(address < 32);
7492b2
+
7492b2
     dev = g_new0(SpiceUsbDevice, 1);
7492b2
     dev->device_info.bus = BUS_NUMBER_FOR_EMULATED_USB;
7492b2
     dev->device_info.address = address;
7492b2
-- 
7492b2
2.28.0
7492b2