From: Klaus Jensen <k.jensen@samsung.com>
Fix potentially overflowing shift operation.
Cc: qemu-stable@nongnu.org
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Suggested-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Resolves: Coverity CID 1663674
Fixes: ec917cd49918 ("hw/nvme: fix FDP set FDP events")
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
Changes in v2:
- use deposit64
- Link to v1: https://lore.kernel.org/qemu-devel/20260728-fix-shift-v1-1-bdb98c205233@samsung.com
---
hw/nvme/ctrl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index a67e1598891c..4f1fe2ed493d 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -6622,7 +6622,8 @@ static uint16_t nvme_set_feature_fdp_events(NvmeCtrl *n, NvmeNamespace *ns,
if (!shift && event_type) {
continue;
}
- event_mask |= (1 << nvme_fdp_evf_shifts[events[i]]);
+ event_mask =
+ deposit64(event_mask, nvme_fdp_evf_shifts[events[i]], 1, 1);
}
if (enable) {
---
base-commit: 299e7557ed15a9a325620698add379a3ce2d1d95
change-id: 20260728-fix-shift-525e53c1df6f
Best regards,
--
Klaus Jensen <k.jensen@samsung.com>