[PATCH v2] hw/nvme: fix unintentional integer overflow in shift

Klaus Jensen posted 1 patch 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260728-fix-shift-v2-1-6c2355edcfbc@samsung.com
Maintainers: Keith Busch <kbusch@kernel.org>, Klaus Jensen <its@irrelevant.dk>, Jesper Devantier <foss@defmacro.it>
hw/nvme/ctrl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] hw/nvme: fix unintentional integer overflow in shift
Posted by Klaus Jensen 2 months ago
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>


Re: [PATCH v2] hw/nvme: fix unintentional integer overflow in shift
Posted by Philippe Mathieu-Daudé 2 months ago
On 28/7/26 11:42, Klaus Jensen wrote:
> 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(-)

Please include "qemu/bitops.h" when applying (it is indirectly
included but we rather explicit includes otherwise refactoring
unrelated headers might break here), otherwise:

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>

Re: [PATCH v2] hw/nvme: fix unintentional integer overflow in shift
Posted by Klaus Jensen 2 months ago
On Jul 28 18:15, Philippe Mathieu-Daudé wrote:
> On 28/7/26 11:42, Klaus Jensen wrote:
> > 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(-)
> 
> Please include "qemu/bitops.h" when applying (it is indirectly
> included but we rather explicit includes otherwise refactoring
> unrelated headers might break here), otherwise:
> 

Gotcha.

> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
>